三角形三点求面积

标准问题

坐标轴中有 A , B , C A,B,C A,B,C三点,坐标为 ( 0 , 0 ) , ( x B , y B ) , ( x C , y C ) (0,0),(x_B,y_B),(x_C,y_C) (0,0),(xB,yB),(xC,yC),求由这三点围成的三角形面积。

在这里插入图片描述

解法

可以从点 B B B作垂线,与 A C AC AC交于 E E E点。再从点 A A A A D ⊥ B E AD\perp BE ADBE D D D点,从点 C C C C F ⊥ B E CF\perp BE CFBE F F F点。

在这里插入图片描述

这样可以推出
S Δ A B C = S Δ A B E + S Δ B C E = 1 2 A D ⋅ B E + 1 2 C F ⋅ B E = 1 2 B E ( A D + C F ) = 1 2 x C ( y B − y E ) \begin{align} S_{\Delta ABC}&= S_{\Delta ABE}+S_{\Delta BCE}\\ &=\frac{1}{2}AD\cdot BE+\frac{1}{2}CF\cdot BE\\ &=\frac{1}{2}BE(AD+CF)\\ &=\frac{1}{2}x_C(y_B-y_E) \end{align} SΔABC=SΔABE+SΔBCE=21ADBE+21CFBE=21BE(AD+CF)=21xC(yByE)
y E = y C x C x B y_E=\frac{y_C}{x_C}x_B yE=xCyCxB,可以得出
S Δ A B C = 1 2 x C ( y B − y C x C x E ) = 1 2 ( x C ⋅ y B − x B ⋅ y C ) \begin{align} S_{\Delta ABC}&=\frac{1}{2}x_C(y_B-\frac{y_C}{x_C}x_E)\\ &=\frac{1}{2}(x_C\cdot y_B-x_B\cdot y_C)\\ \end{align} SΔABC=21xC(yBxCyCxE)=21(xCyBxByC)

问题变形

坐标轴上有 A , B , C A,B,C A,B,C三点,坐标为 ( x A , y A ) , ( x B , y B ) , ( x C , y C ) (x_A,y_A),(x_B,y_B),(x_C,y_C) (xA,yA),(xB,yB),(xC,yC),求由这三点围成的三角形面积。

在这里插入图片描述

像这样的问题可以被转化为一个标准问题:
坐标轴中有 A , B , C A,B,C A,B,C三点,坐标为 ( 0 , 0 ) , ( x B − x A , y B − y A ) , ( x C − x A , y C − y A ) (0,0),(x_B-x_A,y_B-y_A),(x_C-x_A,y_C-y_A) (0,0),(xBxA,yByA),(xCxA,yCyA),求由这三点围成的三角形面积。
把上面的公式转换一下,就成了
S Δ A B C = 1 2 ( ∣ x C − x A ∣ ⋅ ∣ y B − y A ∣ − ∣ x B − x A ∣ ⋅ ∣ y C − y A ∣ ) S_{\Delta ABC}=\frac{1}{2}(|x_C-x_A|\cdot |y_B-y_A|-|x_B-x_A|\cdot |y_C-y_A|) SΔABC=21(xCxAyByAxBxAyCyA)

代码

double square(double xa,double ya,double xb,double yb,double xc,double yc){
    return 0.5 * ((xc - xa) * (yb - ya) + (xb - xa) * (yc - ya));
}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值