三角形ABC几个重要的"点"
2006-12-23 21:18 老博客哈 阅读(1250) 评论(3) 编辑 收藏 举报三角形ABC几个重要的点
设三角形的三条边为a, b, c,且不妨假设a <= b <= c,
三角形的面积可以根据海伦公式算得,如下:
s = sqrt(p * (p - a) * (p - b) * (p - c)), p = (a + b + c) / 2
下面是计算该点到三角形三个顶点A,B,C的距离之和(从上海交大2004 Programming Contest
抽取出来的)
1. 费马点(该点到三角形三个顶点的距离之和最小)
有个有趣的结论:若三角形的三个内角均小于120度,
那么该点连接三个顶点形成的三个角均为120度;若三角形存在一个内角
大于120度,则该顶点就是费马点)
计算公式如下:
若有一个内角大于120度(这里假设为角C),则距离为a + b
若三个内角均小于120度,则距离为
sqrt((a * a + b * b + c * c + 4 * sqrt(3.0) * s) / 2),其中
2.内心----角平分线的交点
令x = (a + b - c) / 2, y = (a - b + c) / 2, z = (-a + b + c) / 2, h = s / p
计算公式为 sqrt(x * x + h * h) + sqrt(y * y + h * h) + sqrt(z * z + h * h)
3.重心----中线的交点
计算公式如下:
2.0 / 3 * (sqrt((2 * (a * a + b * b) - c * c) / 4)
+ sqrt((2 * (a * a + c * c) - b * b) / 4)
+ sqrt((2 * (b * b + c * c) - a * a) / 4))
4.垂心----垂线的交点
计算公式如下:
3 * (c / 2 / sqrt(1 - cosC * cosC))