[问题] 如何判断点是否在线段上

楼主: RogerKao (RK)   2016-08-12 03:01:56
各位大大晚安,小弟第一次在板上PO文,如有冒犯还请见谅。
小弟有一问题相问:
问题是关于直线段连线的问题,以下所有线段、连线都是rectilinear的
假设目前已知存在某线段(即知其头尾座标)
例如(0,10)->(10,10),其中(10,10)为可连接之端点
接着我有一点(7,6),想求此点连线到该线段或是该端点的最短距离
就会有两个连法,第一个连法就是直接垂直往上连到(7,10)
第二个连法就是往右边画线到(10,6)再往上连到(10,10),而产生两段线段。
当然我可以直接看出(7,6)->(7,10)走的距离比较短。
但我怎么判断走到(7,10)之后,线段不会再往右边连到(10,10)?
也就是我如何判断我的中继点已经在已知线段上,而不再继续连线?
我是有想到一个方法就是判断欲连接点(7,6)之X值是否在第一线段之X值范围内
即 0 <= 7 <= 10,若是则可直接垂直连至线段Y=10上,但总觉得应该有更好
的方式,因为这样我线段数一多的时候判断式似乎就更加复杂了。
因为一旦第二个点连至第一个点或第一个点产生之线段之后,其第二个点或其线段也会
变成下一个点可连接之选择。
叙述不佳的话还请各位大大见谅!
作者: Litfal (Litfal)   2016-08-12 10:35:00
x0<=x && x<=x1 && y0<=y && y<=y1
楼主: RogerKao (RK)   2016-08-12 20:27:00
感谢楼上回答,这我刚有想到,不知道是否还有其他方法?
作者: MOONY135 (谈无欲)   2016-08-12 23:06:00
你的到线段跟到端点距离是想要怎样取舍?
楼主: RogerKao (RK)   2016-08-16 23:26:00
感谢楼上大大热心解答!

Links booklink

Contact Us: admin [ a t ] ucptt.com