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

看板C_Sharp作者 (Litfal)時間6年前 (2017/11/07 20:51), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/2 (看更多)
※ 引述《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則複雜得多。 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.160.23.32 ※ 文章網址: https://www.ptt.cc/bbs/C_Sharp/M.1510059104.A.5CA.html
文章代碼(AID): #1Q0QnWNA (C_Sharp)
文章代碼(AID): #1Q0QnWNA (C_Sharp)