用海伦公式求三角形面积,要求用带参数的宏定义实现

1个回答

  • 海伦公式

    假设有一个三角形,边长分别为a、b、c,三角形的面积S可由以下公式求得:

    S=√[p(p-a)(p-b)(p-c)]

    p为半周长:p=(a+b+c)/2

    证明:

    设三角形的三边a、b、c的对角分别为A、B、C,

    则余弦定理为

    cosC = (a^2+b^2-c^2)/2ab

    S =1/2*ab*sinC

    =1/2*ab*√(1-cos^2 C)

    =1/2*ab*√[1-(a^2+b^2-c^2)^2/4a^2*b^2]

    =1/4*√[4a^2*b^2-(a^2+b^2-c^2)^2]

    =1/4*√[(2ab+a^2+b^2-c^2)(2ab-a^2-b^2+c^2)]

    =1/4*√[(a+b)^2-c^2][c^2-(a-b)^2]

    =1/4*√[(a+b+c)(a+b-c)(a-b+c)(-a+b+c)]

    设p=(a+b+c)/2

    则p=(a+b+c)/2, p-a=(-a+b+c)/2, p-b=(a-b+c)/2,p-c=(a+b-c)/2,

    上式=√[(a+b+c)(a+b-c)(a-b+c)(-a+b+c)/16]

    =√[p(p-a)(p-b)(p-c)]

    所以,三角形ABC面积S=√[p(p-a)(p-b)(p-c)]