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());
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д