三角形判断类型

时间:2022-09-09 00:26:13
 static byte GetTriangleType(int a, int b, int c)
{
// 若一个三角形的三边a,b,c (a>=b>=c ) 满足:
//1. a²+b²<c² ,则这个三角形是锐角三角形;
//2. a²+b²=c² ,则这个三角形是直角三角形;
//3. a²+b²>c² ,则这个三角形是钝角三角形。
var n = new[] { a, b, c };
Array.Sort(n);

if (n[0] <= 0) { return 0; } //无效三角形

a = n[0] * n[0];
b = n[1] * n[1];
c = n[2] * n[2];

//类型位标记
byte typeFlags = 0;

if (a + b < c)
{
typeFlags |= 1;
} //钝角
else if (a + b == c)
{
typeFlags |= 2;
} //直角
else
{
typeFlags |= 4;
} //锐角

if (a == b)
{
typeFlags |= 8; //等腰
if (a == c)
{
typeFlags |= 16;
} //等边
}

return typeFlags;
}