【求助】怎麼判斷一個點與三角形的內外 - PCZONE 討論區

返回   PCZONE 討論區 > ▲ -- 網 路 生 活 分 享 區 > -- 閒 話 家 常 灌 水 版


PCZONE 討論區



通知

-- 閒 話 家 常 灌 水 版 上 面 那 些 硬 梆 梆 的 專 業 話 題 插 不 上 話 ?? 那 就 來 這 邊 就 你 周 遭 網 路 上 或 生 活 上 的 話 題 來 哈 拉 一 下

會員
【求助】怎麼判斷一個點與三角形的內外
算是無聊想到的...

如果給你一個三角形的三頂點座標(平面座標..可以小數點)...

再給你一個點...怎樣最快查出這個點在三角形內外...

這是我的想法:

1.先抓出三角形的範圍...確定點不再三頂點上...

2.每一點x都有他對應的Y範圍(JK之間)..

3.由H的x去推算j.k(好像有"三點"的比例公式)..

4.檢查y再不再jk之間...

是的話就在三角形內..反之則否...

不過好像有點麻煩..

PS.這不是數學題@@...是寫程式用的...

回覆
WebSphereMania

  不妨用向量的觀念吧!
回覆
會員

計算其穿越線的次數!!
回覆
會員

向量??....

請教一下..
回覆
WebSphereMania

  A 到 BC 線段上的任何一點(不含 BC 兩點)可以寫成 x AB + (1-x) AC, 且 0 < x < 1

  AH 可以寫成 y AB + z AC

  H 點在 三角形 ABC 內且不在三邊以及三頂點上的條件為

1. y + z < 1, 且
2. y > 0, 且
3. z > 0
回覆
進階會員

引用:
作者: Schnaufer
  A 到 BC 線段上的任何一點(不含 BC 兩點)可以寫成 x AB + (1-x) AC, 且 0 < x < 1

  AH 可以寫成 y AB + z AC

  H 點在 三角形 ABC 內且不在三邊以及三頂點上的條件為

1. y + z < 1, 且
2. y > 0, 且
3. z > 0
''據說''這個好像是高二高三的東西.....

可是已經被我們老師超車講了不少了 = =...
回覆
會員

用直線方程式的觀點來看
求直線AB ,看看 C 和 H 是否在直線AB同一側 若是 ==>續求 直線AC ,看看 B 和 H 是否在直線AC同一側 若是 ==>續求 直線BC ,看看 A 和 H 是否在直線BC同一側 若是 ==> 在三角形內部
任一不成立,則在三角形外部或線上
回覆
會員

用面積如何?

若AHB+AHC+BHC=ABC,且AHB*AHC*BHC不為0,則點在三角形內。

回覆
Watch Dog

引用:
作者: TomX
算是無聊想到的...
PS.這不是數學題@@...是寫程式用的...
既然是寫程式用的, 那麼不用數學的方法也可以:

繪三角形, 此處以單色來演示即可, 在此三角形內塗佈顏色, "黑" 的好了, 三角形外塗白的, 給定欲查該點座標後, 檢查該座標的顏色, 是黑的就是三角內, 是白的就是三角外, 簡單明瞭, 沒有運算........
回覆
會員

to 山賊..

用c寫阿XD....Double型態..

不知道面積會不會有例外....

回覆







 XML   RSS 2.0   RSS 
本站使用 vBulletin 合法版權程式
站務信箱 : [email protected]

本論壇所有文章僅代表留言者個人意見,並不代表本站之立場,討論區以「即時留言」方式運作,故無法完全監察所有即時留言,若您發現文章可能有異議,請 email :[email protected] 處理。