@定义一个"四边形"类,包含4个顶点坐标,以及定义判断4个顶点是否构成四边形的函数并计算其面积TOC
主要思路
首先定义一个四边形的类,(判断)因为三点成直线则非三角形,那么类推四个点任意三个点不成直线,则为四边形。(计算)把四边形切割为两个三角形,计算三角形面积,然后将三角形的面积相加来计算四边形的面积。
首先定义一个四边形的类
class SBX //四边形类
{
public int Px1,Px2,Px3,Px4,Py1,Py2,Py3,Py4; //顶点坐标
//判断
//计算函数
}
(判断)因为三点成直线则非三角形,那么类推四个点任意三个点不成直线,则为四边形。
public bool IsSBX() //判断是否是四边形
{
if ((Py3 - Py2) * (Px3 - Px1) == (Py3 - Py1) * (Px3 - Px2))
return false;
else if ((Py3 - Py4) * (Px3 - Px1) == (Py3 - Py1) * (Px3 - Px4))
return false;
else if ((Py4 - Py2) * (Px4- Px1) == (Py4 - Py1) * (Px4 - Px2))
return false;
else if ((Py3 - Py2) * (Px3 - Px4) == (Py3 - Py4) * (Px3 - Px2))
return false;//任意三点呈直线,不能构成四边形
else
return true;
}
(计算)把四边形切割为两个三角形,计算三角形面积,然后将三角形的面积相加来计算四边形的面积。
public double MJ()//计算四边形面积
{
return Math.Abs(//计算方法)
}
三角形面积求法(x1 * y2 + x2 * y3 + x3 * y1 - y1 * x2 - y2 * x3 - y3 * x1) / 2.0
class Program
{
static void Main(string[] args)
{
SBX sbx = new SBX();
Console.Write("请输入第一个点X:");sbx.Px1 = Convert.ToInt16(Console.ReadLine());
Console.Write("请输入第一个点Y:"); sbx.Py1 = Convert.ToInt16(Console.ReadLine());
Console.Write("请输入第二个点X:"); sbx.Px2 = Convert.ToInt16(Console.ReadLine());
Console.Write("请输入第二个点Y:"); sbx.Py2 = Convert.ToInt16(Console.ReadLine());
Console.Write("请输入第三个点X:"); sbx.Px3 = Convert.ToInt16(Console.ReadLine());
Console.Write("请输入第三个点Y:"); sbx.Py3 = Convert.ToInt16(Console.ReadLine());
Console.Write("请输入第四个点X:"); sbx.Px4= Convert.ToInt16(Console.ReadLine());
Console.Write("请输入第四个点Y:"); sbx.Py4 = Convert.ToInt16(Console.ReadLine());
if (sbx.IsSBX())
{
Console.WriteLine("该四边形的面积是={0}", sbx.MJ());
}
else
{
Console.WriteLine("该点不能构成四边形!");
Console.ReadLine();
}
}
}
}