[問題] 判斷座標是否落於範圍內

作者: AutoTea (自動茶)   2017-11-06 23:09:58
  想請教各位前輩,小弟目前有一個問題:
(x1,y1)┌────────────┐(x2,y2)
   │            │
  │ .←(x,y) │
│ │
(x3,y3)└────────────┘(x4,y4)
目前判斷(x,y)是否於上面四方型的方法是採用:GraphicsPath.IsVisible
x1 <-> x2 = width y1 <-> y2 =height
width, heihgt 的範圍太大了(20000以上),往往判斷一符圖下來要10分鐘以上
(跑width, heihgt loop),不知各位前輩有沒有什麼好方法,可以讓速度再快一點?
感謝
作者: anumis (阿努米斯)   2017-11-07 00:48:00
2萬的項目純判斷迴圈很快吧,應該不到1秒,你的程式碼方便貼出來嗎?
作者: stupid0319 (徵女友)   2017-11-07 01:04:00
改成C語言應該可以快一倍
作者: Laluth (陽光)   2017-11-07 09:36:00
如果這是迴圈內全部的程式碼的話if判斷應該可以移到迴圈外
作者: hrih (hrih)   2017-11-07 14:38:00
用外積判斷就好了,給你關鍵字,射線法
作者: Litfal (Litfal)   2017-11-07 20:12:00
因為GraphicsPath.IsVisible比你想像中複雜,如果都是矩形請用Rectangle.Contains然後根本不需要掃整個矩形範圍檢查,只要跑四個迴圈設定矩形範圍外的就好
作者: bestman8556 (廷廷)   2017-11-22 12:19:00
碰過這種類似問題,射線法解決+1

Links booklink

Contact Us: admin [ a t ] ucptt.com