Я ищу способ нарисовать бесконечную линию (линию без конца, также известную как луч) через 2 точки. Я могу нарисовать линию между двумя точками с помощью Line2D, здесь нет проблем.
Следующая бесконечная часть нуждалась в взгляде. Я простодушно подумал, давайте умножим координаты 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));
Это сначала нарисует толстую красную линию, затем нарисует синюю тонкую линию.
Синяя линия имеет другой угол по сравнению с красной линией. Вот скриншот, иллюстрирующий этот эффект:
Кто-нибудь знает способ исправить это или, может быть, лучший способ провести бесконечную линию через 2 точки?