C# GDI图形问题!

大家好!!我是一新手!!请大家多多关照!

我在窗体上画了一个多边形,想确定在鼠标点击窗体的时候,鼠标点击的那点是否在所画的多边形内,这个要怎么做啊!!请大家多多帮忙!!

 Graphics g = this.CreateGraphics();
            Pen p = new Pen(Color.Red);
            Point p1 = new Point(5,285);
            Point p2 = new Point(269,183);
            Point p3 = new Point(398,292);
            Point p4 = new Point(815,362);
            Point p5 = new Point(814,578);
            Point p6 = new Point(261,578);
            Point p7 = new Point(2,404);
            Point[] pa ={ p1, p2, p3, p4, p5, p6, p7 };
            g.DrawPolygon(p,pa);


慕仙森
浏览 399回答 2
2回答

繁花如伊

你要计算出这个多边形的 占据的范围的所有点的位置集合、放在一个hs表里面、然后在鼠标点击的时候、取到鼠标的点击位置、hs表中一查。就可以得到是否在这个图形内。但是有个问题、就是你要得到这个多边形的点的位置结合、或者说、是一个算法规则、麻烦点、但是不难。本来你的多边形就是用几个点确定的。你可以跟据点得到、算法变现的点集合。然后比较。ok

开满天机

MeasureCharacterRanges 获取说有Regions 遍历Region ,判定坐标是否在Region 中即可。
打开App,查看更多内容
随时随地看视频慕课网APP