带有圆角的ARKit Drawing 3D纸飞机

问题描述

我试图在ARKit中绘制带有圆角的3D纸飞机,但是我不能这样做。

我是用巴塞尔路径做到的:

    // create bezeir path
    let path  = UIBezierPath()
   
    // A bezier path
    path.move(to: CGPoint(x: 0,y: 0.025))
    path.addLine(to: CGPoint(x: 0.02,y: -0.005))
    path.addLine(to: CGPoint(x: 0,y: 0))
    path.addLine(to: CGPoint(x: -0.02,y: -0.005))
    path.close()
     
    // create arrow shape
    let arrowShape = SCNShape(path: path,extrusionDepth: 0.001)
    arrowShape.chamferRadius = 50
  
    // create new node
    arrownode = SCNNode(geometry: arrowShape);
       
    // set arrow color
    arrownode!.geometry?.firstMaterial?.diffuse.contents = UIColor.yellow 

结果:

enter image description here

我确实需要这样,但带有圆角。

解决方法

实例属性chamferRadius为拉伸的zDepth(而不是XY路径)创建倒角。

let arrowShape = SCNShape(path: path,extrusionDepth: 0.005)
arrowShape.chamferRadius = 20

enter image description here

如果要创建圆角,请使用以下方法作为路径:

path.addQuadCurve(to: CGPoint,controlPoint: CGPoint)

path.addCurve(to: CGPoint,controlPoint1: CGPoint,controlPoint2: CGPoint)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...