我将如何获得SCNVector3的绝对值?

时间:2019-01-21 00:53:37

标签: ios swift scenekit scnvector3

我想获得SCNVector3的绝对值,以找到两个向量的大小。 Scenekit没有任何内容。如果有一种简单的方法,我宁愿不用可可豆做。以下是相关代码:

  static func angle3dVector(p1: SCNVector3, p2: SCNVector3, p3: SCNVector3, p4: SCNVector3) -> Double {
    let v1: SCNVector3 = SCNVector3(p1.z - p2.z, p1.y - p2.y, p1.x - p2.x)
    let v2: SCNVector3 = SCNVector3(p3.z - p4.z, p3.y - p4.y, p3.x - p4.x)
    let v1norm = v1.normalized()
    let v2norm = v2.normalized()

    let dot = v1.x * v2.x + v1.y * v2.y + v1.z * v2.z
    let res = v1norm.x * v2norm.x + v1norm.y * v2norm.y + v1norm.z * v2norm.z
    // This is where I'm trying to get the magnitude
    var magnitude = abs(v1) * abs(v2)
    let angle: Double = Double(acos(dot/magnitude))


    return (angle/pi) * 180 //Converted to degrees
}

我还可以将点乘积本身取平方根。基本需求是具有两个SCNVector3变量的大小。

0 个答案:

没有答案