楼主:
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则复杂得多。