有关点在线段上投影移动相关的问题
如图,点A沿曲线运动,点B是点A在L1上的投影,
A的运动过程中,持续的在L1或L2上产生投影。
目前L1和L2的方程可知,点A的所有轨迹点也是可知的,当然点B位置都可以算得出来。
我现在碰到的问题是:
当A开始大转向的时候,我怎么开始在L2上绘制投影点?这个改怎么判断?最开始我想在L1和L2上同时投影,只显示投影与A距离近的点,但是这样在L1L2夹角小的时候,或者L2与转向后运动轨迹平行的时候转向期间画投影点有个空档期。
讨教一下有没有更好的方法让投影看起来是沿着L1L2运动的?
[解决办法]
就按照你原来的做法,同时求2个投影点,只显示距离小的那个,其实同时显示也没什么问题
方法是分别求A到L1和L2的垂足即可.
直线方程已知,等于斜率已知,垂线段所在直线的斜率就是倒数
点A坐标已知,联合斜率写出垂线段方程,然后分别联立2组直线方程解出2个垂足
上述所有推导都可以在纸上完成,将最终结果(2个垂足)写成点A坐标与L1和L2参数的形式
程序中直接求值即可
[解决办法]
用投影明显是不可能的.你l1 l2中间结合部位又不是曲线,怎么都投影不到那儿去。
感觉你的意图应该这么做。
设l1,l2夹角平分线 l3。
计算投影点o1,o2. 计算o1 o2和角顶点距离s1,s2。
用(s1-s2)/(s1+s2) 来插值o点投影[o1,o2]
比如A正处于角平分线上时,投影s1==s2.这时插值出的结果为角顶点。
如果点在l1 l3中间,s1>s2,此时插值结果会接近o1