果园里的树

这篇博客介绍了如何利用有向面积判断点是否位于三角形内部或边界上,涉及几何和浮点数比较的技巧。通过计算三角形的有向面积,可以确定点的位置,同时提醒在进行浮点数比较时要注意精度问题。
摘要由CSDN通过智能技术生成

——园里的树排列成矩阵。它们的x和y坐标均是1~99的整数。输入若干个三角形,依次统计每一个三角形内部和边界上共有多少棵果树。
如图所示:
果园里的树
样例输入
1.5 1.5 1.5 6.8 6.8 1.5
10.7 6.9 8.5 1.5 14.5 1.5
样例输出
15
17

分析:
此题用有向面积来解,首先看函数

double area(double x1, double y1, double x2, double y2, double x3, double y3)
{
	return x1*y2 + x3*y1 + x2*y3 - x3*y2 - x1*y3 - x2*y1;
}

它给出三角形P1(x1,y1)- P2(x1,y1)- P3(x2,y2)的有向面积的两倍。如果△P1P2P3的三个顶点顺时针排列,那么有向面积为负;如果为逆时针排列,那么有向面积为正;3点共线时,有向面积为0。如果感觉比较难记,可以记它的行列式形式:
____|x1 y1 1|
2S= |x2 y2 1| = x1y2 + x3y1 + x2y3 - x3y2 - x1y3 - x2y1
___ |x3 y3 1|

有了它,判断就很简单了:假设输入三角形为ABC,待判断点为O,则O在三角形ABC内部或边界上,当且仅当S△ABC=S△OAB + S△OB

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

胡小冰

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值