Как я смогу получить абсолютное значение SCNVector3? - PullRequest
0 голосов
/ 21 января 2019

Я хотел бы получить абсолютное значение 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.

...