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必须是恒定的。添加更多公式以避免混淆