如何在给定scnvector3点数组的情况下创建倾斜平面

时间:2019-08-07 18:12:59

标签: ios scenekit scnnode scnscene

我正在尝试使用给定的3d坐标点数组(已转换为scnvector3点)在Scenekit中创建平面形状。我已经使用贝塞尔曲线路径来创建2d平面,并且想知道是否存在一种在真实3d空间中绘制平面的简便方法

2 个答案:

答案 0 :(得分:0)

您正在寻找SCNShape吗?

答案 1 :(得分:0)

这是我最后要做的,而不是使用SCNPlane(在本例中为三角形)。这将创建具有给定点的自定义几何。对于索引,您可以标记要连接点的顺序,然后要使其在平面的两侧可见,则绘制相反的顺序。

    let vertices: [SCNVector3] = [SCNVector3(0, 1, 0),
                                  SCNVector3(-0.5, 0, 0.5),
                                  SCNVector3(0.5, 0, 0.5)]

    let source = SCNGeometrySource(vertices: vertices)

    let indices: [UInt16] = [0, 1, 2,
                             2, 1, 0,]

    let element = SCNGeometryElement(indices: indices, primitiveType: .triangles)

    let geometry = SCNGeometry(sources: [source], elements: [element])
    geometry.firstMaterial?.diffuse.contents  = NSColor.green
    let node = SCNNode(geometry: geometry)
    let scnView = self.view as! SCNView

    scnView.scene?.rootNode.addChildNode(node)