20
可以說我有點(x,Y,Z)和平面點(A,B,c)和正常(d,E,F)。我想找到第一個點在飛機上正交投影的結果。我正在使用這個3D圖形編程。我想在飛機上實現某種剪輯。如何查找一個點的正交投影到一個平面上
可以說我有點(x,Y,Z)和平面點(A,B,c)和正常(d,E,F)。我想找到第一個點在飛機上正交投影的結果。我正在使用這個3D圖形編程。我想在飛機上實現某種剪輯。如何查找一個點的正交投影到一個平面上
點q = (x, y, z)
的投影到由點p = (a, b, c)
和正常n = (d, e, f)
給定的平面內是
q_proj = q - dot(q - p, n) * n
這種計算假設n
是單位矢量。
我實現了使用QVector3D在Qt的這個功能:
QVector3D getPointProjectionInPlane(QVector3D point, QVector3D planePoint, QVector3D planeNormal)
{
//q_proj = q - dot(q - p, n) * n
QVector3D normalizedPlaneNormal = planeNormal.normalized();
QVector3D pointProjection = point - QVector3D::dotProduct(point - planePoint, normalizedPlaneNormal) * normalizedPlaneNormal;
return pointProjection;
}
這將使用相同的算法以前,接受的答案,並使用沒有要求的語言。這個答案是什麼增加了接受的答案? –