【发布时间】:2017-10-17 12:30:28
【问题描述】:
我知道如何在 2D 中使用 atan2 获得 2 点之间的角度,但这在 3D 中如何工作?: 假设我有 3 个点 A、B、C(都是 SCNVector3,具有 x、y、z 坐标 第一行端点 A 和 B 第二行端点 B 和 C 现在我想得到两条线之间的角度......(在 ios Swift 中) 我读过一些关于点积和 acos 的东西,但不知何故它不起作用......
当 i=0 时:
var vector1 = SCNVector3((pointArray[i].x - pointArray[i+1].x), (pointArray[i].y - pointArray[i+1].y), (pointArray[i].z - pointArray[i+1].z))
var vector2 = SCNVector3((pointArray[i+2].x - pointArray[i+1].x), (pointArray[i+2].y - pointArray[i+1].y), (pointArray[i+2].z - pointArray[i+1].z))
var dotProduct = vector1.x * vector2.x + vector1.y * vector2.y + vector1.z * vector2.z
var theta = acos(dotProduct)
var tmp_winkel = GLKMathRadiansToDegrees(theta)
【问题讨论】: