使用UIBezierPath和SCNShape无法创建圆形

3

您是否熟悉使用曲线UIBezierPaths来创建ARKit中的SCNShape? 我正在创建一个封闭的圆形路径,但我的ARKit场景中出现了一个菱形形状。

以下是我用于创建贝塞尔路径和SCNShape的代码:

let radius : CGFloat = 1.0
let outerPath = UIBezierPath(ovalIn: CGRect(x: -radius, y: -radius, width: 2* radius, height: 2* radius))

let material = SCNMaterial()
material.diffuse.contents = UIColor.blue
material.isDoubleSided = true
material.ambient.contents = UIColor.black
material.lightingModel = .constant
material.emission.contents = UIColor.blue

let shape = SCNShape(path: outerPath, extrusionDepth: 0.01)
shape.materials = [material]

let shapeNode = SCNNode(geometry: shape)
positioningNode.addChildNode(shapeNode)

我已经成功测试了一个矩形贝塞尔曲线路径,但是在圆角矩形贝塞尔曲线路径(使用UIBezierPath(roundedRect:))上仍然存在问题。 对于圆角矩形贝塞尔曲线路径,ARKit显示带有45度线的曲线角。

提前感谢!

更新:

左侧是初始SCNShape,使用UIBezierPath的flatness设置为0.6。右侧是相同的SCNShape,flatness设置为0.001。

enter image description here

1个回答

8

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接