Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Почему рисует ниже курсора

Давид Мейстер Мастер (2089), на голосовании 7 месяцев назад
Делаю "рисовалку", перепробовал уже кучу разных, но всегда почему то рисует на ~100px ниже от курсора
Видео с примером

Код:
                 

     const canvas = document.getElementById("contract-paint") 
canvas.height = window.innerHeight
canvas.width = window.innerWidth

const ctx = canvas.getContext("2d")

// previous mouse positions
// They will be null initially
let prevX = null
let prevY = null

// How thick the lines should be
ctx.lineWidth = 5

window.addEventListener("mousemove", (e) => {
// initially previous mouse positions are null
// so we can't draw a line
if (prevX == null || prevY == null) {
// Set the previous mouse positions to the current mouse positions
prevX = e.clientX
prevY = e.clientY
return
}

// Current mouse position
let currentX = e.clientX
let currentY = e.clientY

// Drawing a line from the previous mouse position to the current mouse position
ctx.beginPath()
ctx.moveTo(prevX, prevY)
ctx.lineTo(currentX, currentY)
ctx.stroke()

// Update previous mouse position
prevX = currentX
prevY = currentY
});
Голосование за лучший ответ
Jurijus Zaksas Искусственный Интеллект (445767) 8 месяцев назад
Потому что у окна есть заголовок.
Должны быть специальные методы у окна для пересчета абсолютных координат в client area, гугли.
Похожие вопросы