Canvas, рисование мышью - Java
Формулировка задачи:
Добрый вечер, товарищи. Собственно, не так давно я решил познакомиться поближе с JavaFX, и в качестве пробного проекта выбрал простую рисовалку. Столкнулся с проблемой, которую не могу решить.
gc, соответственно, GraphicsContext. Проблема вся в том, что если я рисую через Path, т.е. начинаю с beginPath() и заканчиваю с closePath(), то рисование идёт точками, но сохраняется фигура, и, естественно, при новом вызове данного события не обновляется всё старое(если я почистил), а если я использую как-то так(ниже), то идёт чёткая линия за курсором, но при повторном вызове события, естественно, от последней точки до текущей идёт прямая линия(если вставить gc.moveTo перед gc.lineTo, то точки снова появляются)
Думал как-то обработать через setOnMouseDragEntered, но никакого толку это не принесло. Есть идеи?
myCanvas.setOnMouseDragged((MouseDragEvent) -> { if(rootLayoutEventController.pencil){ gc.beginPath(); gc.moveTo(MouseDragEvent.getX(), MouseDragEvent.getY()); gc.lineTo(MouseDragEvent.getX(), MouseDragEvent.getY()); gc.stroke(); gc.moveTo(MouseDragEvent.getX(), MouseDragEvent.getY()); gc.closePath(); } });
myCanvas.setOnMouseDragged((MouseDragEvent) -> { if(rootLayoutEventController.pencil){ gc.lineTo(MouseDragEvent.getX(), MouseDragEvent.getY()); gc.stroke(); gc.moveTo(MouseDragEvent.getX(), MouseDragEvent.getY()); } });
Решение задачи: «Canvas, рисование мышью»
textual
Листинг программы
gc.moveTo(MouseEvent.getX(), MouseEvent.getY());
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д