【问题标题】:How can I change the thickness of the draw line?如何更改绘制线的粗细?
【发布时间】:2018-10-13 10:03:01
【问题描述】:
private func lineFrom(vector vector1: SCNVector3, toVector vector2: SCNVector3) -> SCNGeometry {

        let indices: [Int32] = [0,1]
        let source = SCNGeometrySource(vertices: [vector1, vector2])
        let element = SCNGeometryElement(indices: indices, primitiveType: .line)
        return SCNGeometry(sources: [source], elements: [element])
    }


@objc private func tapped(rec: UITapGestureRecognizer) {

    let hitTransform = SCNMatrix4(hit.worldTransform)

                let hitPoint = SCNVector3Make(hitTransform.m41 , hitTransform.m42, hitTransform.m43)

                if points.start == nil{
                    print("start touch")
                    points.start = hitPoint
                    print(points.start!.x, points.start!.y, points.start!.z)

                } 

        else{
                    points.end = hitPoint
                    print(points.end!.x, points.end!.y, points.end!.z

                    line.geometry = lineFrom(vector: points.start!, toVector: points.end!)

                    line.geometry?.firstMaterial?.diffuse.contents = UIColor.red
                    line.geometry?.firstMaterial?.isDoubleSided = true

                    sceneView.scene.rootNode.addChildNode(line)
                    func renderer(_ renderer: SCNSceneRenderer, willRenderScene scene: SCNScene, atTime time: TimeInterval) {
                        glLineWidth(80)
                     }
                    canPlacePoint = false
                }
            }
        }
}

我触摸两个点来保存位置并尝试画一条连接两个点的线。虽然画了线,但触摸点的位置不正确。 我也使用了glLineWidth(),因为我想改变绘制线条的粗细,但是它并没有改变。我该怎么办?

【问题讨论】:

标签: ios swift scenekit arkit


【解决方案1】:

SCeneKit 更喜欢使用 Metal 而不是 OpenGL,在 Metal 中没有办法画粗线;此外,OpenGl 现在已被弃用。您需要使用三角形来绘制粗线。

【讨论】:

    【解决方案2】:

    两个值得尝试的想法:

    • 可以使用旋转的 SCNCapsule 或 SCNBox 绘制直线
    • 用图片文件填充material.diffuse.contents,使用透明图片可以画出很多有趣的形式

    【讨论】:

      猜你喜欢
      • 2018-02-02
      • 2020-03-03
      • 1970-01-01
      • 1970-01-01
      • 2015-12-12
      • 2011-02-02
      • 1970-01-01
      • 2017-04-17
      • 1970-01-01
      相关资源
      最近更新 更多