在论坛上看到一个问题 http://bbs.csdn.net/topics/390337730?page=1#post-393389887,如何求一条折线的中点位置,折线的各个顶点坐标以及连接顺序都是已知的(用顶点排列顺序表示)。
笨办法也是有的,就不提了,这里提一个方法:开两个动点,循环一开始的时候这两个动点分别处于折线的两个端点,然后在循环体内,每循环一次两个动点都沿着折线向内侧步进相同的长度,当两个动点来到同一条线段时,停止循环,两个点的中点即为所求。需要注意的是哪个步进的长度不能太大,免得错过碰面机会了,最好要小于折线上线段的最短长度的一半。
至于如何让动点沿着折线移动,这个很简单,你写出直线的参数方程,参数的范围就限定了线段,你让参数以一个固定的间隔跳跃就可以了,转角地方需要特别处理一下。