我正在寻找一种方法来通过两个点画出无限线(也称为射线)。使用Line2D可以在两个点之间画一条直线,这没有问题。
接下来需要考虑无限的部分。我想到了一个简单的方法,就是将第二个点的x和y坐标乘以100,然后重新绘制线条。这种方法有效,但只适用于简单的情况。
例如,下面的情况会产生不同角度的线条:
接下来需要考虑无限的部分。我想到了一个简单的方法,就是将第二个点的x和y坐标乘以100,然后重新绘制线条。这种方法有效,但只适用于简单的情况。
例如,下面的情况会产生不同角度的线条:
g.setColor(Color.red);
g2.setStroke(new BasicStroke(4.0f));
g2.draw(new Line2D.Double(0, 61.632653061218946, 944, 217.25510204080692));
g.setColor(Color.blue);
g2.setStroke(new BasicStroke(1.0f));
g2.draw(new Line2D.Double(0, 61.632653061218946, 944*10, 217.25510204080692*10));
这将首先绘制一条粗红线,接着它会绘制一条蓝色的细线。
与红线相比,蓝线的角度有所不同。以下是一个截图,以说明这种效果:
有人知道如何解决这个问题,或者有更好的方法通过两点绘制无限直线吗?