SCNLine
用于在应用中使用SceneKit创建粗线几何形状的函数和类。
介绍
SCNLine是一个用于在3D空间中绘制给定厚度的线的类。在大多数3D项目中,通常会使用GL_LINES方法;这样做在SceneKit中使用这个原语类型是可行的。然而,glLineWidth现在已弃用,这就是我最初编写这个类的原因。
有关在OpenGL或其他情况下绘制原语类型的信息,请参阅此文档,或者如果您想了解它在SceneKit中的应用,请查看我的第一篇关于构建原语几何体的Medium文章。
请随意使用和贡献这个库。我唯一的要求是,您让我知道您在使用;这样我可以看到一些关于它的酷用法!
安装
Swift包管理器
将此存储库的URL添加到您的Xcode 11+项目中。
https://github.com/maxxfrazer/SceneKit-SCNLine.git
CocoaPods
在Podfile中添加: pod 'SCNLine', '~> 1.0'
导入
在.swift文件中添加: import SCNLine
示例
要将线几何图形添加,就这么简单
let lineGeometry = SCNGeometry.line(points: [
SCNVector3(0,-1,0),
SCNVector3(0,-1,-1),
SCNVector3(1,-1,-1)
], radius: 0.1).0
或直接使用节点 SCNLineNode
drawingNode = SCNLineNode(
with: [SCNVector3(0,-1,0), SCNVector3(0,-1,-1), SCNVector3(1,-1,-1)],
radius: 0.01,
edges: 12,
maxTurning: 12
)
drawingNode.add(point: SCNVector3(1,-2,-2))
如果您希望稍后通过向其添加点来更新线,请推荐后者。
这对于在ARKit设置中从原点下方开始,向前然后向右绘制半径为10厘米的线非常有用。y值设置为-1仅作为一个示例,假设您的场景图原点大约在地面上方1米处。
可传递给SCNGeometry.path的其它参数
名称 | 描述 | 默认 | 示例 |
---|---|---|---|
点 | 由SCNVector3点构成线的数组 | 无默认 | [SCNVector3(0,-1,0), SCNVector3(0,-1,-1), SCNVector3(1,-1,-1)] |
半径 | 线条的半径(米) | 无默认 | 0.1 |
边缘 | 用于围绕扩展到几何图形的管状线条的边缘的顶点数 | 12,最小为3 | 16 |
最大转向 | 定向转向新方向时组成弯曲外观的点数最大值 | 4 | 16 |
在下面的示例中,它显示了如何用于绘制应用程序,我不会推荐在当前状态下使用此类,因为当前的类将从线的开始到末端重新收集顶点,这非常低效,因为大多数将保持不变。
这里有一些基本示例,说明您可以使用此Pod做什么