我对 canvas 元素还很陌生,我想了解更多,因为我认为它有潜力。几年前我学过一些openGL(虽然有点模糊),但我只记得很少的东西。综上所述,我如何能够围绕其中心或原点平移对象,例如矩形。我知道你将如何围绕它的中心旋转;平移到原点,旋转它,然后将其平移回来。很简单。我尝试使用相同的概念围绕其中心进行翻译,但无济于事。翻译点仍然在左上角,而不是在我想要的中心。关于我将如何做到这一点的任何提示?我希望这不是一个愚蠢的问题,我只是筋疲力尽,今天无法正确编程或其他什么。
var width = 500;
var height = 400;
var x;
var y;
var rot;
var mx = 2;
var my = 2;
function init() {
x = 0;
y = 0;
setInterval(draw, 1000 / 60);
}
function draw() {
var ctx = document.getElementById("canvas").getContext("2d");
ctx.clearRect(0, 0, width, height);
ctx.save();
ctx.translate(x, y);
ctx.fillStyle = "white";
ctx.strokeRect(0, 0, 30, 30);
ctx.restore();
document.getElementById("x").innerHTML = x;
document.getElementById("y").innerHTML = y;
}
document.onkeydown = function(e) {
var event = e || window.event;
/*if(x + mx > canvas.width - 15 || x + mx < 15) {
x = (x + mx > canvas.width - 15) ? canvas.width - 15 : 15;
}*/
if(e.keyCode == 39) { // Right
x = x + mx;
}
else if(e.keyCode == 37) { // Left
x = x - mx;
}
}