Инструмент «Карандаш», создающий несколько линий одновременноJavascript

Форум по Javascript
Ответить
Anonymous
 Инструмент «Карандаш», создающий несколько линий одновременно

Сообщение Anonymous »

Я реализую инструмент «Карандаш» в своем коде с использованием HTML и JS, все, что мне нужно, это иметь возможность рисовать на холсте.
Во-первых, я понял, что для рисования мне нужен контекст холста и использовать его методы (beginPath, moveTo, lineTo и Stroke) для рисования в контексте через контекст холста.
Моя проблема в том, что при рисовании линии я получаю несколько линий из моей последней точки мышь на моем холсте в любую текущую точку мыши на холсте.
Прочитав это, мне все еще трудно найти решение этой проблемы.
HTML









BlaqdPad - Import, Edit, Draw, Share!







Select



Import



Pencil



New Canva



Download




Settings












JavaScript
const canvas = document.querySelector(".cnv-layer");
const pencilTool = document.querySelector(".pencil");
pencilTool.addEventListener("click", () => {
activeTool = "pencil";
canvas.style.pointerEvents = "auto";
// pencilTool.style.backgroundColor = "blanchedalmond";
});
//Pencil Tool
const context = canvas.getContext("2d");
// console.log(context);
let isDrawing = false;
let lastX = 0;
let lastY = 0;
canvas.addEventListener("mousedown", (e) => {
if (activeTool !== "pencil") return;
isDrawing = true;
lastX = e.offsetX;
lastY = e.offsetY;
});
canvas.addEventListener("mousemove", (e) => {
if (activeTool !== "pencil" || !isDrawing) return;
context.beginPath();
context.lineWidth = 3
context.moveTo(lastX, lastY);
context.lineTo(e.offsetX, e.offsetY);
context.stroke();
})


Подробнее здесь: https://stackoverflow.com/questions/798 ... ltaneously
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Javascript»