这个源代码写的不是十全十美,只是提供一个

还待完善的地方例如判断是否这个图形是封闭的。得空在解决吧

这只是一个算法上

谁有c#的参考手册网盘分享一份

谢谢

下面请看源码

凑够150个字了,不废话了。

鼠标画图难免会有误差,所以需要容忍一定的误差

 using System;
 using System.Collections.Generic;
 using System.Linq;
 using System.Text;
 using System.Threading.Tasks;

 /// <summary>
 /// 判断图形是否是三角形
 /// 3点一线
 /// </summary>

 namespace ConsoleApplication1
 {
     struct Point
     {
         public Point(float x, float y)
         {
             this.x = x;
             this.y = y;
         }
         public float x;
         public float y;
     }
     class ZJB
     {
         ;
         public Point[] point = new Point[MaxNum];
         ;//角的个数
         ;//点的个数
         ;//可以忽略的距离
         /// <summary>
         /// 求两点之间的距离
         /// </summary>
         /// <param name="p1">坐标点</param>
         /// <param name="p2">坐标点</param>
         /// <returns>两点之间的距离</returns>
         public float PointDistance(Point p1, Point p2)
         {
             float Value = (p1.x - p2.x) * (p1.x - p2.x) + (p1.y - p2.y) * (p1.y - p2.y);
             Value = (float)Math.Sqrt(Value);
             return Value;
         }

         /// <summary>
         /// 判断三角形
         /// </summary>
         public void Delta()
         {
             //测试用例---------------------------
             point[] = , );
             point[] = , );
             point[] = , );
             point[] = , );
             point[] = , );
             point[] = , );
             point[] = , );
             point[] = , );
             point[] = , );
             point[] = , );
             PointNum = ;
             //-----------------------------------

             ; i < PointNum - ; i++)
             {
                 ], point[i - ]);
                 ]);
                 ]);
                 Console.WriteLine("(ab + bc) - ac={0}", (ab + bc) - ac);
                 if ((ab + bc) - ac > DistanceError)
                 {
                     AngleNum++;
                 }
                 )
                 {
                     ac = PointDistance(point[i], point[]);
                     ab = PointDistance(point[i], point[]);
                     bc = PointDistance(point[], point[]);
                     Console.WriteLine("(ab + bc) - ac={0}", (ab + bc) - ac);
                     if ((ab + bc) - ac > DistanceError)
                     {
                         AngleNum++;
                     }
                 }
             }

             Console.WriteLine("这是一个{0}边形", AngleNum);

         }
     }
 }

01010101010101010101

01010101010101010101

01010101010101010101

05-02 08:47