背景として半円形(北半球)画像の上にあるダイヤルを回転させます。範囲は0〜180度です。キャンバス変換を行うメソッドへの入力では、ダイヤルが回転し、一致した値で停止します。 phrogz で渡されたヘルプとサンプルに基づいて、私が試していたものを次に示します。
一般的に、あなたがしたいことは:
コード内:
_ctx.save();
ctx.translate( canvasRotationCenterX, canvasRotationCenterY );
ctx.rotate( rotationAmountInRadians );
ctx.translate( -objectRotationCenterX, -objectRotationCenterY );
ctx.drawImage( myImageOrCanvas, 0, 0 );
ctx.restore();
_
これが 実行例 の動作を示しています。 (回転の計算は、素早くスケッチされたゲージダイヤルに適合するスイング量とラジアン単位のオフセットを見つけるために実験的にハッキングされました。)
明らかなように、上記のステップ#3のtranslate
呼び出しをdrawImage()
呼び出しへのオフセットに置き換えることができます。例えば:
_ctx.drawImage( myImageOrCanvas, -objectRotationCenterX, -objectRotationCenterY );
_
同じ場所に複数のオブジェクトを描画する場合は、コンテキスト変換の使用をお勧めします。