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

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

这只是一个算法上

谁有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

C#判断画的图形是不是三角形的更多相关文章

  1. C++ 画星号图形——空心三角形(星号左对齐)(核心代码介绍)

    //输出一个由星号组成的三角形(星号左对齐) int a;//控制组成三角形的星号的行数 cout<<"请输入要组成三解形的星号的行数n(n>=2):\n"; c ...

  2. C++ 画星号图形——空心三角形(星号居中对齐)(核心代码介绍)

    //输出另外一种由星号组成的三角形(星号居中对齐) int a;//控制组成三角形的星号的行数 cout<<"请输入要组成三解形的星号的行数n(n>=2):\n" ...

  3. iOS-CGContextRef画各种图形例子

    iOS-CGContextRef画各种图形例子 绘制效果图 绘制代码 - (void)drawRect:(CGRect)rect { //一个不透明类型的Quartz 2D绘画环境,相当于一个画布,你 ...

  4. Android利用canvas画各种图形

    Android利用canvas画各种图形(点.直线.弧.圆.椭圆.文字.矩形.多边形.曲线.圆角矩形) 本文链接:https://blog.csdn.net/rhljiayou/article/det ...

  5. (转)第04节:Fabric.js用路径画不规则图形

    在Canvas上画方形.圆形.三角形都是很容易的,只要调用fabric对应的方法就可以了,但这些都是规则的图形,如果你想画一个不规则的图形,这时候你可以用fabric.js提供的路径绘图方法.所谓路径 ...

  6. Directx11教程(6) 画一个简单的三角形(2)

    原文:Directx11教程(6) 画一个简单的三角形(2)      在上篇教程中,我们实现了在D3D11中画一个简单的三角形,但是,当我们改变窗口大小时候,三角形形状却随着窗口高宽比例改变而改变, ...

  7. AJ学IOS(29)UI之Quartz2D自定义下载控件_画各种图形

    AJ分享,必须精品 效果 自定义控件过程 主要过程在上一篇里有介绍了,这里主要介绍下代码实现 先做好要放的view 然后实现呢主要就是四步: 1:获取上下文 2:拼接路径 3:把路径添加到上下文. 4 ...

  8. 放肆的使用UIBezierPath和CAShapeLayer画各种图形

    CAShapeLayer 是 CALayer 的子类,但是比 CALayer 更灵活,可以画出各种图形,当然,你也可以使用其他方式来画,随你. 杂谈 在 CAShapeLayer 中,也可以像 CAL ...

  9. 使用UIBezierPath和CAShapeLayer画各种图形

    转载自:http://www.cocoachina.com/ios/20160214/15251.html CAShapeLayer 是 CALayer 的子类,但是比 CALayer 更灵活,可以画 ...

随机推荐

  1. NOPI实现导入导出泛型List,支持自定义列

    概述 业务上需要自定义列的Excel的导入导出,在网上看了好多资料,很多都是有Bug而且都是支持Excel和DataTable的转换,所以自己总结了一下,应用.NET平台上的NPOI封装了支持自定义列 ...

  2. mysql中的视图、事务和索引

    视图: 对于一个sql查询,如果发生了修改,就需要修改sql语句. 我们可以通过定义视图来解决问题.改变需求之后就改变视图. 视图是对查询的封装 定义视图: create view 视图名称 as s ...

  3. HTML中的上下标标签的演示

    HTML中的上下标标签的演示 #table_head>td { font-weight: bold } tr { text-align: center } 作用 标签 演示代码 呈现效果 上标 ...

  4. Hive:有表A与表B进行inner join,如果A分组内包含有数据,使用A,否则使用B分组下的数据

    tommyduan_fingerlib 指纹库 栅格小区级别数据tommyduan_mr_grid_cell_result_all 统计 栅格小区级别数据业务:以tommyduan_mr_grid_c ...

  5. JS面向对象使用面向对象进行开发

      面向对象基础一之初体验使用面向对象进行开发 对 JS 中的面向对象的基础进行讲述, 初体验使用面向对象进行开发 主要内容是 面向对象的概念及特性 用面向对象的方式解决简单的标签创建实例 一些基础的 ...

  6. Redis Cluster 4.0 on CentOS 6.9 搭建

    集群简介 Redis 集群是一个可以在多个 Redis 节点之间进行数据共享的设施(installation). Redis 集群不支持那些需要同时处理多个键的 Redis 命令, 因为执行这些命令需 ...

  7. Python selenium 三种等待方式详解

    1. 强制等待第一种也是最简单粗暴的一种办法就是强制等待sleep(xx),强制让闪电侠等xx时间,不管凹凸曼能不能跟上速度,还是已经提前到了,都必须等xx时间.看代码: # -*- coding: ...

  8. codeforces 809E Surprise me!

    Tired of boring dates, Leha and Noora decided to play a game. Leha found a tree with n vertices numb ...

  9. [SHOI2008]汉诺塔

    Description 汉诺塔由三根柱子(分别用A B C表示)和n个大小互不相同的空心盘子组成.一开始n个盘子都摞在柱子A上, 大的在下面,小的在上面,形成了一个塔状的锥形体. 对汉诺塔的一次合法的 ...

  10. hdu 5429(大数模板)

    题意:判断是否是等比数列 a[i] * a[i] = a[i+1] * a[i-1]   +   部分为0 的情况 /*  表示还没学java.... ,模板来自NK_test #include &l ...