Я пытаюсь использовать холст Vuejs Draw этого Codepen в качестве компонента. Все прекрасно работает, но я думаю, что положение мыши относительно окна. Поэтому при рисовании он отлично работает только в том случае, если холст имеет размер окна (ширину, высоту), если нет, то существует огромная разница в курсоре и позиции рисования.
Я попытался установить смещение ширины и высоты холста вместо окна, например
setSize() {
this.c.width = this.c.offsetWidth;
this.c.height = this.c.offsetHeight - 60;
}
и позиции мыши с кодом ниже, как в этом SO answers
function getMousePos(canvas, evt) {
var rect = canvas.getBoundingClientRect();
return {
x: (evt.clientX - rect.left) / (rect.right - rect.left) * canvas.width,
y: (evt.clientY - rect.top) / (rect.bottom - rect.top) * canvas.height
};
}
но это не изменило результат. Так что вернулся обратно и добавил в код песочницу. Если кто-нибудь может помочь мне выяснить, в чем здесь проблема? Я знаю, что это с позиции мыши, но не уверен, где именно.
Вот codesandbox ссылка на демонстрацию, которую я пытаюсь исправить.