C语言平面几何17-角平分线


角平分线的求解思路,如图,求∠ABC的角平分线:



(1)在BC(或BC的延长线)上取一点D,使|AB|=|BD|。

(2)求线段AD的中点E,则直线BE即为∠ABC的角平分线。

点D的坐标可以根据三角形相似来求解,如x满足|BD|/|BC|=(D.x-B.x)/(C.x-B.x)。

/* 角平分线,输入:角ABC<180度 */
Line AngleBisector(Point A, Point B, Point C)
{
	double ba = DistanceOfPoints(A, B);
	double bc = DistanceOfPoints(B, C);
	// 利用三角形相似,求点D
	double k = ba / bc;
	Point D;
	D.x = (C.x - B.x) * k + B.x;
	D.y = (C.y - B.y) * k + B.y;
	// 线段AD的中点E
	Point E;
	E.x = (A.x + D.x)/2;
	E.y = (A.y + D.y)/2;
	return LineMake(B, E);
}


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值