Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/364.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/9.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_Android_Math - Fatal编程技术网

Java 绘制一条平行线,与画布中已倾斜的线保持特定距离

Java 绘制一条平行线,与画布中已倾斜的线保持特定距离,java,android,math,Java,Android,Math,我有一条线(,)在画布上,即使它可能是歪斜的,我想做的就是,画一条新的平行线,相对于旧的线(,),线的长度相等。 试过这个>>>> double d = getLength(x1, y1, x2, y2); double m = getSlope(x1, y1, x2, y2); double r = Math.sqrt(1 + Math.pow(m, 2)); double endX = x + d / r; double endY = y + ((d

我有一条线(,)在画布上,即使它可能是歪斜的,我想做的就是,画一条新的平行线,相对于旧的线(,),线的长度相等。 试过这个>>>>

    double d = getLength(x1, y1, x2, y2);
    double m = getSlope(x1, y1, x2, y2);
    double r = Math.sqrt(1 + Math.pow(m, 2));
    double endX = x + d / r;
    double endY = y + ((d * m) / r);
    return new double[]{x, y, endX, endY};

要制作平行线段,需要构建所需长度的垂直向量。 请注意,对于线段的两侧,有两种解决方案

dx = x2 - x1
dy = y2 - y1
len = sqrt(dx*dx+dy*dy)
perpx = -dy * distance / len
perpy = dx * distance / len

// "left" line start
x1' = x1 + perpx
y1' = y1 + perpy
// "left" line end
x2' = x2 + perpx
y2' = y2 + perpy

// "right" line
x1'' = x1 - perpx
y1'' = y1 - perpy
x2'' = x2 - perpx
y2'' = y2 - perpy

工作正常,但两条线(平行线)之间的距离不是恒定的,知道吗?@Ashutosh Gupta distance必须是恒定的。添加更多公式以避免混淆