我有一段代码检查给定的 3 个坐标是否相互线性(如果是,则返回 true)。但是有没有办法让代码给出或获取一些像素/绘图?
private boolean collinear(double x1, double y1, double x2, double y2, double x3, double y3) {
return (y1 - y2) * (x1 - x3) == (y1 - y3) * (x1 - x2);
}
你看,坐标必须完全内联才能注册为线性。我怎样才能让它看起来在某种“范围”内,以便它检查一个值,然后用新值设置坐标?
---- 已添加----
我正在尝试查看这 3 个点是否构成一条直线,但我希望它在阈值内进行检查(因为有些点可能会稍微偏离)。一旦 Java 发现这些点实际上是线性的(给予或接受),我希望它用 Java 检查的值替换 x1、x2、x3、y1 等。
最佳答案
使用 Hesse 范式,您可以计算点到直线的垂直距离。因此,当距离小于阈值时,它们就足够近了。
这样的代码叫做distanceFromLine
()
Java 内置了这个
Line2D line = new Line2D.Double(x0, y0, x1, y1);
double distance = line.ptLineDist(px, py);
if (Math.abs(distance) < threshold) {
// is Near line
}
关于Java - 平均线性图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13591837/