欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

C#定义一个四边形类,判断这四个顶点是否构成四边形,并计算面积

程序员文章站 2022-04-02 18:50:14
...

C#定义一个四边形类,包含四个顶点坐标,以及定义判断这四个顶点是否构成四边形的函数,并计算面积。

具体代码如下:

class SBX
    {
        public int Px1, Px2, Px3, Px4, Py1, Py2, Py3, Py4;  //顶点坐标
        public bool IsSBX()                                 //判断是否是四边形
        {
            if ((Py4 - Py3) * (Px4 - Px2) == (Py4 - Py2) * (Px4 - Px3))
                return false;
            else if ((Py4 - Py3) * (Px4 - Px1) == (Py4 - Py1) * (Px4 - Px3))
                return false;
            else if ((Py4 - Py2) * (Px4 - Px1) == (Py4 - Py1) * (Px4 - Px2))
                return false;
            else if ((Py3 - Py2) * (Px3 - Px1) == (Py3 - Py1) * (Px3 - Px2))
                return false;                               //任意三个顶点成直线,非四边形
            else
                return true;
        }
        public double Mj()                                  //计算四边形面积
        {
            return Math.Abs(Px1 * Py2 + Px2 * Py3 + Px3 * Py1 - Py1 * Px2 - Py2 * Px3 - Py3 * Px1) / 2.0+
                Math.Abs(Px1 * Py4 + Px4 * Py3 + Px3 * Py1 - Py1 * Px4 - Py4 * Px3 - Py3 * Px1) / 2.0;
        }
    }

这里计算四边形面积是将其切割为两个三角形,再求和。

已知三个顶点求三角形面积的数学方法(上面求三角形面积的代码是我从课本上抄的,但是不知道为什么这么写,就去查了一下)
C#定义一个四边形类,判断这四个顶点是否构成四边形,并计算面积
直角梯形面积 — 两个直角三角形面积

=[ (y2-y1+y2-y3)(x3-x1)-(y2-y1)(x2-x1)-(y2-y3)(x3-x2) ] /2

=(-x1y2-x2y3-x3y1+y1x2+y2x3+y3x1) /2

这个结果的绝对值与代码中是一样的

相关标签: C# c#