私は単純な作業をしています - 1つの長方形を描き、回転してコピーし、回転したものを複製する必要があります。私はそれをそうしようとします:キャンバス上で図面を回転する
var c = document.getElementById("myCanvas");
var ctx = c.getContext("2d");
//1. rotate canvas
ctx.rotate(-30 * Math.PI/180);
ctx.rect(10, 60, 80, 40);
ctx.stroke();
//2. copy rotated rectangle
var img = ctx.getImageData(0, 0, 140, 140);
//3. rotate back
ctx.rotate(30 * Math.PI/180);
//4. draw rotated version of the rectangle
ctx.putImageData(img, 80, 100);
アイデアは非常に簡単です。最初のステップでは、矩形を描き、2番目のステップでキャンバスを回転させ、スナップショット(または回転した四角形のコピーを作成)を行います。3番目のステップでキャンバスを回転させます。もう回転させないでください)、最後のステップではキャンバスに回転オブジェクトの新しいオブジェクトを追加します。しかし、これは私が得るものです:私が間違っているのは何
とどのように私は望ましい結果を得ることができます:私はこの絵を取得することが期待に対し
?
まず実際にあなたを回転ボックスを描画しています
ポストをcanvas.toDataUrl
を使用して画像を一時的にキャンバスの素敵な例を示します。 '// 3。あなたは回転しますが、キャンバスに描画するために何もしません。 https://jsfiddle.net/jr3g9cyk/1/ – PeeHaaさて、あなたは長方形を2回描きます。しかし、私は一度それを描画し、getImageDataでクローンしたいと思います。 – Jacobian
getImageDataの使用は厳密な要件です。キャッチは私が2つの長方形で私の質問を簡略化しただけですが、現実世界では状況がはるかに悪いです。私が望むのは、この背景を回転させ、そこからチャンクを作成し、後でこのチャンクを別の座標に描画することです。 – Jacobian