LINUX.ORG.RU

История изменений

Исправление Gyros, (текущая версия) :

Спасибо!

function getMousePos(canvas, w, h, evt) {
            if (evt && !evt.clientX) {
              // use touches if touch and not mouse
              if (evt.touches) {
                evt = evt.touches[0];
              } else if (evt.changedTouches) {
                evt = evt.changedTouches[0];
              }
            }
            var rect = canvas.getBoundingClientRect();
            var sx = canvas.scrollWidth / w || 1;
            var sy = canvas.scrollHeight / h || 1;
            return {
              x: (evt.clientX - rect.left) / sx,
              y: (evt.clientY - rect.top) / sy,
              winX: evt.clientX,
              winY: evt.clientY,
              id: evt.identifier
            };
          }

Т.е. sx=1, sy!=1.

Все равно легче от того, что я нашел эту ф-цию не стало.

x и y - это мышиные коорд.

А что такое canvas.scrollHeight?

w,h=500 - это р-ры кот задаются в let canvas = createCanvas(500, 500);

Исправление Gyros, :

Спасибо!

function getMousePos(canvas, w, h, evt) {
            if (evt && !evt.clientX) {
              // use touches if touch and not mouse
              if (evt.touches) {
                evt = evt.touches[0];
              } else if (evt.changedTouches) {
                evt = evt.changedTouches[0];
              }
            }
            var rect = canvas.getBoundingClientRect();
            var sx = canvas.scrollWidth / w || 1;
            var sy = canvas.scrollHeight / h || 1;
            return {
              x: (evt.clientX - rect.left) / sx,
              y: (evt.clientY - rect.top) / sy,
              winX: evt.clientX,
              winY: evt.clientY,
              id: evt.identifier
            };
          }

Т.е. sx=1, sy!=1.

Все равно легче от того, что я нашел эту ф-цию не стало.

x и y - это мышиные коорд.

А что такое canvas.scrollHeight?

Исправление Gyros, :

Спасибо!

function getMousePos(canvas, w, h, evt) {
            if (evt && !evt.clientX) {
              // use touches if touch and not mouse
              if (evt.touches) {
                evt = evt.touches[0];
              } else if (evt.changedTouches) {
                evt = evt.changedTouches[0];
              }
            }
            var rect = canvas.getBoundingClientRect();
            var sx = canvas.scrollWidth / w || 1;
            var sy = canvas.scrollHeight / h || 1;
            return {
              x: (evt.clientX - rect.left) / sx,
              y: (evt.clientY - rect.top) / sy,
              winX: evt.clientX,
              winY: evt.clientY,
              id: evt.identifier
            };
          }

Т.е. sx=1, sy!=1. Все равно легче от того, что я нашел эту ф-цию не стало. x и y - это мышиные коорд.

Исправление Gyros, :

Спасибо!

function getMousePos(canvas, w, h, evt) {
            if (evt && !evt.clientX) {
              // use touches if touch and not mouse
              if (evt.touches) {
                evt = evt.touches[0];
              } else if (evt.changedTouches) {
                evt = evt.changedTouches[0];
              }
            }
            var rect = canvas.getBoundingClientRect();
            var sx = canvas.scrollWidth / w || 1;
            var sy = canvas.scrollHeight / h || 1;
            return {
              x: (evt.clientX - rect.left) / sx,
              y: (evt.clientY - rect.top) / sy,
              winX: evt.clientX,
              winY: evt.clientY,
              id: evt.identifier
            };
          }

Исходная версия Gyros, :

Спасибо!

function getMousePos(canvas, w, h, evt) {
            if (evt && !evt.clientX) {
              // use touches if touch and not mouse
              if (evt.touches) {
                evt = evt.touches[0];
              } else if (evt.changedTouches) {
                evt = evt.changedTouches[0];
              }
            }
            var rect = canvas.getBoundingClientRect();
            var sx = canvas.scrollWidth / w || 1;
            var sy = canvas.scrollHeight / h || 1;
            return {
              x: (evt.clientX - rect.left) / sx,
              y: (evt.clientY - rect.top) / sy,
              winX: evt.clientX,
              winY: evt.clientY,
              id: evt.identifier
            };
          }

Получается, что sx=1, а sy!=1.

Осталось понять, что такое canvas.scrollHeight