三角形的内切圆与外接圆面积之比【几何计算】 |
您所在的位置:网站首页 › 外切圆和内切圆半径 › 三角形的内切圆与外接圆面积之比【几何计算】 |
题目来源是CSDN:http://club.csdn.net/module/club/student/programming_challenges http://hero.pongo.cn/Question/Details?ID=232&ExamID=227
一个三角形必然存在它的内切圆与外接圆,求他们的面积比。 考虑到精度问题,我们输出面积比*1000的整数部分(直接下取整)。 输入数据是一个三角形的三个顶点,但这三个顶点在三维空间中,所以输入是9个整数, 分别表示三个顶点(x1,y1,z1) (x2,y2,z2) (x3,y3,z3),保证三点不共线,每个整数在-1000,+1000范围内。 输出内切圆与外接圆的面积比*1000的整数部分。
这个题其实关键是对几何公式的运用: (1)用三维坐标系中计算两点距离的公式计算三角形的三条边a、b、c。(公式参考百度百科) (2)计算内切圆半径r。(公式参考维基百科)
下面是对公式的推导:
(3)计算外接圆的半径R。 公式参考如下: (4)上面计算r、R的过程需要用到三角形的面积S。 根据三角形三边长a、b、c计算面积S可以用海伦公式:(维基百科) (5)计算出了r、R就可以计算内切圆和外接圆的面积之比了。 这个计算量还是不小的,慢慢算吧。
代码我懒得写了呵呵,下面转载博客园网友的代码:http://www.cnblogs.com/WhyEngine/p/3520538.html 1 #include 2 #include 3 #include 4 #include 5 6 // 内切圆半径 7 // 内切圆半径r=2S/(a+b+c),其中S是三角形面积,a、b、c是三角形三边。 8 // 另外S=根号下p(p-a)(p-b)(p-c),其中p=(a+b+c)/2 9 float TrinagleInCircle(float xA, float yA, float zA, 10 float xB, float yB, float zB, 11 float xC, float yC, float zC) 12 { 13 float ab = (xA - xB)*(xA - xB) + (yA - yB)*(yA - yB) + (zA - zB)*(zA - zB); 14 float bc = (xC - xB)*(xC - xB) + (yC - yB)*(yC - yB) + (zC - zB)*(zC - zB); 15 float ca = (xA - xC)*(xA - xC) + (yA - yC)*(yA - yC) + (zA - zC)*(zA - zC); 16 17 ab = sqrtf(ab); 18 bc = sqrtf(bc); 19 ca = sqrtf(ca); 20 21 float p = (ab+bc+ca)/2; 22 23 float s = p*(p-ab)*(p-bc)*(p-ca); 24 if (s |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |