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

作者: Litfal (Litfal)   2017-11-07 20:51:42
※ 引述《AutoTea (自動茶)》之銘言:
:   想請教各位前輩,小弟目前有一個問題:
: (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),不知各位前輩有沒有什麼好方法,可以讓速度再快一點?
: 感謝
從你的程式碼看來,你是要對矩形"範圍外"做處理
那你只要跑四個迴圈就行了,不需要跑整張圖範圍,再去檢查是否在矩形中


(x1,y1)┌────────────┐(x2,y2)
   │            │
  │  │
│ │
(x3,y3)└────────────┘(x4,y4)



四個顏色各跑一次迴圈,迴圈內不用判斷是否再矩形內。
邊界控制請自己依需求處理。
順便一提,矩形內外判斷請用Rectangle.Contains,這個是很簡單的四個短路邏輯。
GraphicsPath.IsVisible則複雜得多。

Links booklink

Contact Us: admin [ a t ] ucptt.com