Как я смогу получить абсолютное значение 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.