这个源代码写的不是十全十美,只是提供一个
还待完善的地方例如判断是否这个图形是封闭的。得空在解决吧
这只是一个算法上
谁有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