为了账号安全,请及时绑定邮箱和手机立即绑定

三点共线及其他关于点的算法中的精度问题

三点共线及其他关于点的算法中的精度问题

紫衣仙女 2019-03-01 10:59:34
在计算三点共线的算法中, 尝试了计算任意两个直线的斜率相同和采用海伦公式计算面积为0的做法.遇到的问题如下: 没法精确的表示长度, 比如说(1,1),(2,2)之间的距离为根号2(程序里不能表达这样的数).这样计算面积的时候得到的结果并不为0;
查看完整描述

2 回答

?
慕村225694

TA贡献1880条经验 获得超4个赞

一、求出三个点构成的三角形的面积:

     1 | x1 y1 1 |
s3 = - | x2 y2 1 |
     2 | x3 y3 1 |

二、求出三个点占用矩形的面积:

s4 = (max(x1, x2, x3) - min(x1, x2, x3)) x (max(y1, y2, y3) - min(y1, y2, y3))

三、以矩形为参照,判断三角形面积是否为0:

abs(s3) < s4 x 10^-10
查看完整回答
反对 回复 2019-03-01
?
凤凰求蛊

TA贡献1825条经验 获得超4个赞

用它们的平方,也就是2就可以准确表示了呀。

查看完整回答
反对 回复 2019-03-01
  • 2 回答
  • 0 关注
  • 422 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信