前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家!人工智能学习网站
前言:
大家好,我是上位机马工,硕士毕业4年年入40万,目前在一家自动化公司担任软件经理,从事C#上位机软件开发8年以上!我们在C#开发中经常需要对平面中的坐标位置进行一些判断,比如判断坐标点是否在某个多边形范围内,本文就是介绍如何实现这个功能。加粗样式
```csharp
GraphicsPath path = new GraphicsPath();
path.FillMode = FillMode.Winding;//指示填充的模式
path.AddLine(new Point(10, 10), new Point(110, 10));
path.AddLine(new Point(110, 10), new Point(60, 100));
path.AddLine(new Point(60, 100), new Point(10, 10));
this.CreateGraphics().DrawPath(Pens.Red, path);
Point point1 = new Point(10, 10);
if (path.IsVisible(point1))
{
Console.WriteLine("point1在多边形内");
}
else
{
Console.WriteLine("point1不在多边形内");
}
Point point2 = new Point(50, 50);
if (path.IsVisible(point2))
{
Console.WriteLine("point2在多边形内");
}
else
{
Console.WriteLine("point2不在多边形内");
}
Point point3 = new Point(-1, 50);
if (path.IsVisible(point3))
{
Console.WriteLine("point3在多边形内");
}
else
{
Console.WriteLine("point3不在多边形内");
}
输出:
point1在多边形内
point2在多边形内
point3不在多边形内
上述代码中使用GraphicsPath 绘制了一个多边形,也就是一个三角形,三角形的三个点的坐标分别为(10, 10)、(110, 10)、(60, 100),然后分别看point1、point2、point3是否在多边形内,如下:
1)point1 的坐标是(10, 10)正好是三角形的顶点,属于多边形
1)point2 的坐标是(50, 50)正好在三角形内,属于多边形
1)point3 的坐标是(-1, 50)不在三角形内,所以不属于多边形
作者介绍
马工2017年硕士毕业,一直从事上位机软件开发工作,在我工作的第四年年薪突破了40万+,为了帮助跟我一样从底层出身的上位机软件工程师早日达到高级工程师的水平,早日找到30万+的工作,我根据多年项目经验,总结出了一系列可直接用于项目的C#上位机实战教程推荐给大家,目前在CSDN已经超过一千人订阅,如果你不甘贫庸,想像我一样早日拿到高薪,马工强烈推荐你早日学这套教程,雷军曾说这个世界上有99%的问题别人都遇到过,你要做的不是闷头干!而是找这个领域的专家问一下,这是最快速提升自己的方法!
年入30万+C#上位机实战必备教程推荐(点击下方链接即可访问文章)
1、《C#串口通信从入门到精通》
2、《C#与PLC通信从入门到精通 》
3、《C# Modbus通信从入门到精通》
4、《C#Socket通信从入门到精通 》
5、《C# MES通信从入门到精通》
6、《winform控件从入门到精通》