我目前正在研究Matlab上的一个项目,我需要找到一个反映在一条线上的点的坐标。我知道如何在2D中做到这一点,但在3D中,事情变得越来越难看。
因此,我们有一条线经过两个点A(x1,y1,z1)和B(x2,y2,z2)。 P1(x0,y0,z0)反映在该线上,我需要一个算法来找到P1的反射坐标。
答案 0 :(得分:0)
首先,找到点P到线AB的投影L.
L = A + AB * ScalarProduct(AB, AP) / ScalarProduct(AB, AB)
然后计算反射
P' = P + 2*(L-P) = 2*L-P