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

楼主: MOONY135 (谈无欲)   2016-08-13 17:50:04
※ 引述《RogerKao (RK)》之铭言:
: 各位大大晚安,小弟第一次在板上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-13 18:11:00
你这也太辛苦,用斜率算正交就好了
楼主: MOONY135 (谈无欲)   2016-08-13 20:02:00
求角度而已 其实用投影概念也可以吧
作者: Litfal (Litfal)   2016-08-13 20:34:00
把数学式写下来就是很复杂阿XD
楼主: MOONY135 (谈无欲)   2016-08-13 20:39:00
反正他只想问有没有其他方法 这就是其他方法阿
作者: neo5277 (I am an agent of chaos)   2016-08-14 13:25:00
推推
作者: RogerKao (RK)   2016-08-16 23:26:00
感谢!看懂了!

Links booklink

Contact Us: admin [ a t ] ucptt.com