gpt4 book ai didi

uibezierpath - SceneKit 绘制曲线

转载 作者:行者123 更新时间:2023-12-04 12:51:13 27 4
gpt4 key购买 nike

我想用 SceneKit 画一条贝塞尔曲线,并认为这会起作用:

func drawCurvedLine() {

let scene = SCNScene()
let scnView = self.view as! SCNView
scnView.scene = scene
scnView.allowsCameraControl = true

let path = UIBezierPath()
path.moveToPoint(CGPoint(x: -20, y: -20))
path.addCurveToPoint(CGPoint(x: 20, y: 20),
controlPoint1: CGPoint(x: 5, y: 5),
controlPoint2: CGPoint(x: 15, y: 15))

path.closePath()

path.flatness = 0.3

var scnShape:SCNShape = SCNShape(path: path, extrusionDepth: 2)

scnShape.firstMaterial?.diffuse.contents = UIColor.purpleColor()
let shapeNode = SCNNode(geometry: scnShape)
scene.rootNode.addChildNode(shapeNode)
}

但是我的结果是这样的截图: SceneKit render

有谁知道为什么curveTo 控制点被忽略或如何打开它们?或者任何其他方法在 SceneKit 中绘制曲线?
  • 编辑将路径坐标更新为:

    path.moveToPoint(CGPoint(x: -20, y: -20))
    path.addCurveToPoint(CGPoint(x: 20, y: 20),
    controlPoint1: CGPoint(x: 10, y: 0),
    controlPoint2: CGPoint(x: 10, y: 0))

  • 我可以得到这个: curved

    但是我想我不希望填充形状。理想情况下,我试图在这里实现弯曲的管状线。 (想象一下电源线或类似的东西......)。我想我很想拥有相当于 SCNLine 或 SCNTube 的“在贝塞尔路径上渲染”

    最佳答案

    SCNShape只是从封闭的 Bézier 路径构建,并且将始终被填充(孔除外)。这些路径可以完全自定义,但将始终沿 z 轴沿线段挤出。您想要的是沿任意路径挤出一个圆,这是不受支持的。
    SCNGeometry公开允许您构建任意几何图形的 API。

    关于uibezierpath - SceneKit 绘制曲线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31049103/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com