帮助解决这个问题?

jma*_*erx 5 c c++ algorithm math

我正在试图弄清楚如何做到这一点.基本上我有点A和B,我知道它的位置.然后我有点C和点D,我只知道C的坐标.我知道CD的长度,知道CD必须与AB平行.我怎么能一般解决D给定的A,B,C和CD的长度.谢谢

alt text http://img706.imageshack.us/img706/4494/imgclr.png

Pet*_* G. 9

D = C±(BA)/ | BA |*| CD |

如果B = A则没有解,因为线AB退化到一点并且没有定义线到点的平行线.

说明

(BA)/ | BA | 是单位长度的方向向量.乘以长度| CD | 得到适当的偏移矢量.

编辑:将+更改为+以提供两种解决方案.增加了琐碎的案例B = A.

  • 正确."C-(BA)/ | BA |*| CD |"也是一种解决方案(从"C"向相反方向行走). (3认同)