【发布时间】:2017-10-04 11:45:37
【问题描述】:
我有一个程序,我可以在其中绘制两条线,当我为这些线选择了起点和终点时,它会计算它们相交的点。我想画一条线,从交点开始,正好在这两条线的中间。
我像这样计算两条线之间的角度:
double angle(Line pL1, Line pL2){
double angle = Math.toDegrees(Math.atan2(pL2.p1.y - pL1.p1.y, pL2.p1.x - pL1.p1.x));
if(angle < 0){
angle += 360;
}
return angle;
}
然后像这样生成新行:
double newAngle = Math.toRadians(drawAngle);
System.out.println(newAngle);
double x = pI.x + 80 * Math.sin(newAngle);
double y = pI.y + 80 * Math.cos(newAngle);
Point2D.Double endPoint = new Point2D.Double(x,y);
Line l3 = new Line(pI,endPoint);
其中pI 是交点。然而,这条线总是以错误的角度结束,我怎样才能重写这段代码,使这条线准确地绘制在另外两条线之间,就像上面的示例图片一样?
编辑:
【问题讨论】:
-
您能否向我们展示您的方法的视觉输出?
-
@Maia 添加了输出
-
两条线上的第一个点是哪一点?你希望线路去哪里?也许添加其他颜色。