私はキャンバス要素にかなり慣れていませんが、可能性があると思うので、もっと学びたいと思っています。私は数年前にいくつかの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;
}
}