Найти точку пересечения линий - Java

Узнай цену своей работы

Формулировка задачи:

Необходимо нарисовать точку строго на пересечении линий. Я сделал так,что бы точка приблизительно рисовалась на пересечении,но как вычислить точную точку? Все пересечения делятся на цело на 19,но не могу придумать как полученную точку X Y(20 21)-поставить именно на (19,19). Вот небольшая реализация. Сделал +- 5 пикселей,что бы не целится мышкой ровно на пересечение. Но как это занести в ArrayList(точку (19 19)).
private final int scale=19;
    private ArrayList<Point> pointsOne =new ArrayList<Point>();
    private ArrayList<Point> pointsTwo =new ArrayList<Point>();
 
 public void mouseClicked(MouseEvent e) {
                super.mouseClicked(e);
               int x = e.getX();
                int y= e.getY();
                double wx=0;
                double wy=0;
                wx=x%19;
                wy=y%19;
                if((wx<=5)&(wy<=5)) {
                    System.out.println(x + " " + y);
                    if (e.getButton() == 1)
                        pointsOne.add(new Point(x-5,y-5));
                    else if (e.getButton() == 3)
                        pointsTwo.add(new Point(x-5,y-5));
                }

Решение задачи: «Найти точку пересечения линий»

textual
Листинг программы
new Point(Math.round(x/19)*19, Math.round(y/19)*19);

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 4.357 из 5