ジェネリックキャンバスの描画を処理するためのJavaScriptコンポーネントをいくつか作成しています。回転を有効にするのに苦労しています。私はこれに似た関数を持っています(これはかなり単純化されています)。JavaScriptキャンバスで回転するジェネリック関数を作成するにはどうすればよいですか?
function drawThing (ctx, posX, posY, sizeX, sizeY, rotation, drawFn) {
// `ctx` is the 2d canvas context
ctx.save();
ctx.beginPath(); // Not sure if this is needed
ctx.translate(posX, posY); // What do I use here?
ctx.rotate(rotation); // rotation is in radians
drawFn(ctx, posX, posY, sizeX, sizeY);
ctx.restore();
}
function exampleDrawFn (ctx, posX, posY, sizeX, sizeY) {
ctx.fillStyle = "#333";
ctx.fillRect((posX - sizeX/2), (posY - sizeY/2), sizeX, sizeY);
}
変換パラメータに何を使用するのかわかりません。どこか別のエラーがあるかもしれません。
(それは少し複雑ですが、ここで私が実際に働いているコードです:https://github.com/rocket-boots/rocket-boots/blob/master/scripts/rocketboots/Stage.js#L423)は
'ctx.drawImage'メソッドの入力ミスです:' -sizeX/2'と 'setTransform(...)'} '' – Kaiido
@Kaiidoおかげさまで、私は眠る必要があると思います。 – Blindman67
残念なことに、これを実装しようとすると、動作しませんでした/私の関数とまったく同じことをしませんでした。 – Luke