判断一个点是否在多边形内C#

来源:学生作业帮助网 编辑:作业帮 时间:2024/11/28 00:23:32
判断一个点是否在多边形内C#
xRN@'bis '$Q!Vd[SUJE! Mڦ?/: &ܨdyggͼ73Wqgv<ٹ^)Mxx;Ngfן{E 0 H;RVj`N\ʪCi%6윊s@ZC ^*9R.[J?~7<|+hHGK='HsIO?ٛJ` R漜Ǥ* Y3Dߓv;Iő丽^ ",Z{włIș]u[N@M?yҿ £`nXY;$wQ4$dB>$ Ѵlh01 ?Pݣx#hIF5BJJ!"ͷgѴO:rH>zGxz.3 6THE+BibKl"fMii

判断一个点是否在多边形内C#
判断一个点是否在多边形内C#

判断一个点是否在多边形内C#
//判断点在线的一边 public int isLeft(Vector2 P0, Vector2 P1, Vector2 P2) { int abc = (int)((P1.X - P0.X) * (P2.Y - P0.Y) - (P2.X - P0.X) * (P1.Y - P0.Y)); return abc; } //判断点pnt是否在region内主程序 private bool isInRegion(Vector2 pnt , List region) { int wn = 0, j = 0; //wn 计数器 j第二个点指针 for (int i = 0; i < region.Count; i++) { //开始循环 if (i == region.Count - 1) { j = 0;//如果 循环到最后一点 第二个指针指向第一点 } else { j = j + 1; //如果不是 ,则找下一点 } if (region[i].Y pnt.Y) // 如果多边形的下一点 大于于 选定点的 Y 坐标 { if (isLeft(region[i], region[j], pnt) > 0) { wn++; } } } else { if (region[j].Y