如何在给定 scnvector3 点数组的情况下创建成角度的平面
How to create a angled plane given an array of scnvector3 points
我正在尝试使用已转换为 scnvector3 点的给定 3d 坐标点数组在 scenekit 中创建平面形状。我使用贝塞尔曲线路径创建 2d 平面,想知道是否有一种简单的方法可以在真实 3d 中绘制平面 space
SCNShape
是您要找的东西吗?
这是我最终做的,而不是使用 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)
我正在尝试使用已转换为 scnvector3 点的给定 3d 坐标点数组在 scenekit 中创建平面形状。我使用贝塞尔曲线路径创建 2d 平面,想知道是否有一种简单的方法可以在真实 3d 中绘制平面 space
SCNShape
是您要找的东西吗?
这是我最终做的,而不是使用 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)