我想计算给定线上与给定点垂直的点。
我有一条线段AB,在线段外有一个点C。我想计算AB上的点D,使得CD垂直于AB。
我必须找到D点。
它非常类似于this https://stackoverflow.com/questions/1811549/perpendicular-on-a-line-from-a-given-point,但我也想考虑 Z 坐标,因为它在 3D 空间中没有正确显示。
证明:
D点在垂直于AB的直线CD上,当然D属于AB。
记下两个向量 CD.AB = 0 的点积,并将 D 属于 AB 的事实表示为 D=A+t(B-A)。
我们最终得到 3 个方程:
Dx=Ax+t(Bx-Ax)
Dy=Ay+t(By-Ay)
(Dx-Cx)(Bx-Ax)+(Dy-Cy)(By-Ay)=0
将前两个方程代入第三个方程可得:
(Ax+t(Bx-Ax)-Cx)(Bx-Ax)+(Ay+t(By-Ay)-Cy)(By-Ay)=0
分布求解 t 给出:
(Ax-Cx)(Bx-Ax)+t(Bx-Ax)(Bx-Ax)+(Ay-Cy)(By-Ay)+t(By-Ay)(By-Ay)=0
这使:
t= -[(Ax-Cx)(Bx-Ax)+(Ay-Cy)(By-Ay)]/[(Bx-Ax)^2+(By-Ay)^2]
摆脱消极迹象:
t=[(Cx-Ax)(Bx-Ax)+(Cy-Ay)(By-Ay)]/[(Bx-Ax)^2+(By-Ay)^2]
一旦有了 t,您就可以从前两个方程算出 D 的坐标。
Dx=Ax+t(Bx-Ax)
Dy=Ay+t(By-Ay)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)