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

在计算三点共线的算法中, 尝试了计算任意两个直线的斜率相同和采用海伦公式计算面积为0的做法.
遇到的问题如下:

没法精确的表示长度, 比如说(1,1),(2,2)之间的距离为根号2(程序里不能表达这样的数).这样计算面积的时候得到的结果并不为0;

紫衣仙女
浏览 423回答 2
2回答

慕村225694

一、求出三个点构成的三角形的面积: 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

凤凰求蛊

用它们的平方,也就是2就可以准确表示了呀。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java