Re: [問題] 如何判斷點是否在線段上

看板C_Sharp作者 (談無慾)時間7年前 (2016/08/13 17:50), 編輯推噓1(105)
留言6則, 4人參與, 最新討論串2/2 (看更多)
※ 引述《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上,但總覺得應該有更好 : 的方式,因為這樣我線段數一多的時候判斷式似乎就更加複雜了。 : 因為一旦第二個點連至第一個點或第一個點產生之線段之後,其第二個點或其線段也會 : 變成下一個點可連接之選擇。 : 敘述不佳的話還請各位大大見諒! http://imgur.com/nj21NDE
http://imgur.com/MYnTTH7
所以應該是這樣吧 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.225.53.41 ※ 文章網址: https://www.ptt.cc/bbs/C_Sharp/M.1471081807.A.AA1.html

08/13 18:11, , 1F
你這也太辛苦,用斜率算正交就好了
08/13 18:11, 1F

08/13 20:02, , 2F
求角度而已 其實用投影概念也可以吧
08/13 20:02, 2F

08/13 20:34, , 3F
把數學式寫下來就是很複雜阿XD
08/13 20:34, 3F

08/13 20:39, , 4F
反正他只想問有沒有其他方法 這就是其他方法阿
08/13 20:39, 4F

08/14 13:25, , 5F
推推
08/14 13:25, 5F

08/16 23:26, , 6F
感謝!看懂了!
08/16 23:26, 6F
文章代碼(AID): #1NhkrFgX (C_Sharp)
文章代碼(AID): #1NhkrFgX (C_Sharp)