【发布时间】:2010-02-02 01:22:15
【问题描述】:
给定一个起点、一个航向、一个距离和一条线段,找到沿该航向的第一个点,该点距该线段指定距离。
我介绍了两个案例,但我没能介绍最后一个。
第一种情况:远离线路。即使起点在指定距离内,也忽略它。
第二种情况:它与直线相交。我用三角和三角形解决了它。最初没有考虑下一个案例。
第三种情况:它正朝着直线前进,但不相交。我认为如果正确完成,这也将解决第二种情况。
三个子案例:
最小线距离大于指定距离。忽略它。
最小线距离等于指定距离。已经找到积分了。
最小线距小于指定距离。这意味着从沿航向到线段端点的垂直线小于所需距离。这也意味着在这条垂直线的两侧将有两条所需距离的线。一个垂直于航向,而另一个最接近同一端点且不垂直于航向。只需找到这些点并查看哪个更接近起点。
这就是我今天卡住的地方。绘制它很容易,但进行矢量计算或其他任何事情变得棘手。
可以改写为:
P(t) = P0 + t*v 与线段 L((x1,y1), (x2,y2)) 的距离为 D 什么时候?
v=(sin(heading), -cos(heading)) 就我而言。
【问题讨论】:
标签: line distance vector segment heading