저는 html5와 JavaScript에 익숙하지 않습니다. 좌표계에서 점과 선을 다루는 프로그램을 작성하고 있습니다 만, html5에 대한 캔버스의 원점이 상단 모서리에 있음을 알고 있으므로 좌표계를 작성하고 싶습니다. 캔버스의 중심을 원점으로 삼아 번역 방법을 시도하고 다음 방법을 사용하여 마우스가 어디에 있는지 (이상적으로는 마우스가 캔버스의 중앙에있을 때 0 : 0으로 표시하려는 경우) 인쇄합니다. 그러나 그것은 작동하지 않습니다캔버스의 원점을 중앙으로 변경하는 방법은 무엇입니까?
var mousePos = getMousePos(canvas1, evt);
mouseX = mousePos.x;
mouseY = mousePos.y;
var message = 'Mouse position: ' + mousePos.x + ',' + mousePos.y;
writeMessage(document.getElementById("canvas_prime_coor"), message);
function writeMessage(canvas, message) {
var context = canvas.getContext('2d');
context.clearRect(0, 0, canvas.width, canvas.height);
context.font = '18pt Calibri';
context.fillStyle = 'red';
context.fillText(message, 10, 25);
}
function getMousePos(canvas, evt) {
var rect = canvas.getBoundingClientRect();
return {
x: evt.clientX - rect.left,
y: evt.clientY - rect.top};
}
[translate()] (https://developer.mozilla.org/en/docs/Web/API/CanvasRenderingContext2D#translate()) – CBroe