Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用Swift在SceneKit中沿y轴创建缓和曲线_Swift_Scenekit_Uibezierpath - Fatal编程技术网

如何使用Swift在SceneKit中沿y轴创建缓和曲线

如何使用Swift在SceneKit中沿y轴创建缓和曲线,swift,scenekit,uibezierpath,Swift,Scenekit,Uibezierpath,我一直在尝试创建一个将球体相互连接的螺旋。我已经设置了19个球体的位置,现在我想用一条弧连接每个球体。球体沿y轴呈圆形路径 我假设我需要使用多个UIBezierPath来创建一系列连接球体的圆弧。然后使用该路径创建SCN形状,然后相应地旋转和定位形状(基本上是一种猜测和检查方法) 我一直在使用raywenderlich core graphics教程创建路径,并将其更改为我需要的样子。然而,我得到的不是一个漂亮的圆弧,而是一个半圆。这意味着圆的中心没有像我希望的那样被掏空 // 1

我一直在尝试创建一个将球体相互连接的螺旋。我已经设置了19个球体的位置,现在我想用一条弧连接每个球体。球体沿y轴呈圆形路径

我假设我需要使用多个UIBezierPath来创建一系列连接球体的圆弧。然后使用该路径创建SCN形状,然后相应地旋转和定位形状(基本上是一种猜测和检查方法)

我一直在使用raywenderlich core graphics教程创建路径,并将其更改为我需要的样子。然而,我得到的不是一个漂亮的圆弧,而是一个半圆。这意味着圆的中心没有像我希望的那样被掏空

    // 1
    let center = CGPoint(x: 0, y: 0)

    // 2
    let radius: CGFloat = 230

    let arcWidth: CGFloat = 76

    // 4
    let startAngle: CGFloat = 3 * π / 4
    let endAngle: CGFloat =  π / 4

    // 5
    var path = UIBezierPath(arcCenter: center,
        radius: radius/2 - arcWidth/2,
        startAngle: startAngle,
        endAngle: endAngle,
        clockwise: true)

    // 6

   path.lineWidth = arcWidth
    path.closePath()
    var shape = SCNShape(path: path, extrusionDepth: 0.5)
    shape.firstMaterial?.diffuse.contents = UIColor.blueColor()

    let shapeNode = SCNNode(geometry: shape)

    self.rootNode.addChildNode(shapeNode)
总而言之,我有两个问题: A) 有没有一种方法可以创建一个比我自己想的更简单的螺旋呢? B) 如何创建看起来不像半圆的圆弧