Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/384.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java-使绘图点接近线性-完全线性_Java_Math_Coordinates_Point_Threshold - Fatal编程技术网

Java-使绘图点接近线性-完全线性

Java-使绘图点接近线性-完全线性,java,math,coordinates,point,threshold,Java,Math,Coordinates,Point,Threshold,我如何改变“接近”线性(在阈值内)的点,实际上是线性的点 我有一些代码,检查3个点是否彼此线性(给予或接受),我想用100%内联的新坐标替换这些坐标 double distance = (x1 - x2) * (y1 - y3) - (y1 - y2) * (x1 - x3); double threshold = 4; if (Math.abs(distance) <= threshold) { // is Ne

我如何改变“接近”线性(在阈值内)的点,实际上是线性的点

我有一些代码,检查3个点是否彼此线性(给予或接受),我想用100%内联的新坐标替换这些坐标

        double distance = (x1 - x2) * (y1 - y3) - (y1 - y2) * (x1 - x3);

        double threshold = 4;

        if (Math.abs(distance) <= threshold) {
            // is Near line
            return true;
        }
        else
            return false;
双距离=(x1-x2)*(y1-y3)-(y1-y2)*(x1-x3);
双阈值=4;

if(Math.abs(distance)将点捕捉到直线的技术术语是将点投影到直线(-segment)

剩下的唯一问题是:点是投影到直线上还是投影到线段上?(直线段仅在两点之间,直线具有无限长并通过两个点)

下面的代码解决了这两个问题: 为了允许将点投影到点A->B之外的线的另一端,代码会简单得多,但下面的链接也介绍了这一点

投影点位于变量(xx,yy)中:
(xx,yy)是线段上最靠近(cx,cy)的点。

获取它们应该拟合的直线方程,然后找到穿过该点和原始直线的垂直直线,然后使用垂直直线和原始直线的交点。