判斷點是否在矩形框、多邊形內
阿新 • • 發佈:2020-08-12
採用下面兩個方法可以簡單判斷矩形框、多邊形是否包含某個點。
/// <summary> /// 判斷點是否在矩形框內 /// </summary> /// <param name="pt"></param> /// <param name="rect"></param> /// <returns></returns> public static bool PtInRect(Point pt, RectangleF rect) { GraphicsPath path= new GraphicsPath(); Region region = new Region(); path.Reset(); //構建多邊形 path.AddRectangle(rect); region.MakeEmpty(); region.Union(path); //判斷點是否在多邊形裡 bool rlt = region.IsVisible(pt); region.Dispose(); path.Dispose();return rlt; } /// <summary> /// 判斷點是否在多邊形內 /// </summary> /// <param name="pt"></param> /// <param name="pts"></param> /// <returns></returns> public static bool PtInPolygon(Point pt, Point[] pts) { GraphicsPath path= new GraphicsPath(); Region region = new Region(); path.Reset(); //構建多邊形 path.AddPolygon(pts); region.MakeEmpty(); region.Union(path); //判斷點是否在多邊形裡 bool rlt = region.IsVisible(pt); region.Dispose(); path.Dispose(); return rlt; }