История изменений
Исправление 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