我试图绘制箭头使用SCNGeometrySource,SCNGeometryElement。但无法绘制像下面的图像准确的箭头。
是否可以画简单箭头线与头部或箭头像下面的图像。
我试过下面的代码,但这不会工作。
let indices: [Int32] = [0, 1,1]
let source = SCNGeometrySource(vertices: [vector1, vector2])
let element = SCNGeometryElement(indices: indices, primitiveType: .triangles)
2条答案
按热度按时间tjjdgumg1#
如果箭头将始终面向摄影机(如附加图像中所示),则可以使用SCNPlane并将箭头图像用作纹理。
如果它不总是面对相机,你可能会想给予它一些厚度。我不同意另一个答案是一个“更好”的解决方案比你尝试的方法,如果做得正确。
对象C代码(编辑:Swift版本如下)
请注意,它使用多边形基本体类型。
vert列表可以通过舍入浮点数来清理一点。
这将创建以下三维箭头(顶点和边不可见):
编辑:SWIFT版本:
在上面的Swift代码中进行了测试,以仔细检查它是否有效:
如果你需要它更小,取消注解.scale线,并尝试不同的值,看看你想要它有多小。如果你最终希望它的比例为0.06,我建议通过将其中的值乘以0.06来重新生成vert列表,然后删除比例线。
kx7yvsdv2#
对于这样的形状,最好为箭头创建一个平面
UIBezierPath
,然后通过拉伸路径创建一个SCNShape
,以获得三维几何体。