目次 |
---|
・図形を操作する ・<canvas>要素を回転する ・<canvas>要素を移動する ・<canvas>要素を伸縮する ・<canvas>要素を一括変形する ・<canvas>要素を保存する |
<canvas>要素を回転/移動/伸縮させたり、<canvas>要素のsave/restoreさせるなどの操作が可能です。
但し、操作出来るのは描画する図形ではなく、<canvas>要素全体が操作対象となります。
rotateメソッドを使って、<canvas>要素を回転します。
回転の中心は、左上の<canvas>要素の原点となります。
回転方向は、時計回りです。
角は絶対角ではなく、相対角となります。
そのため、多段の回転を加えるときには、注意が必要です。
上記の例では、目盛り線のコードは、どの角度でも同じであることに注目してください。
回転しているのは、<canvas>要素の視点が回転しています。
また、rotateメソッドに関しても、相対角度の指定になっていることに注意してください。
translateメソッドを使って、<canvas>要素を移動します。
移動は、左上の<canvas>要素の原点が移動します。
移動座標は絶対座標ではなく、相対座標となります。
上記の例では、原点(円)のコードは、どの位置でも同じであることに注目してください。
移動しているのは、<canvas>要素の視点が移動しています。
また、translateメソッドに関しても、相対位置の指定になっていることに注意してください。
scaleメソッドを使って、<canvas>要素を伸縮します。
伸縮は、<canvas>要素の原点を中心に伸縮します。
伸縮は絶対倍率ではなく、相対倍率となります。
上記の例では、コーナーのコードでも同じであることに注目してください。
伸縮しているのは、<canvas>要素の大きさが伸縮します。
また、scaleメソッドに関しても、相対倍率の指定になっていることに注意してください。
回転(rotate)、移動(translate)、伸縮(scale)を一括して行います。
transformメソッドは、多段で行う場合は相対的に変形します。
setTransformメソッドは、絶対的な変形をします。
<canvas>要素は、save/restoreメソッドを使い、現在の描画状態を保存/再現することが出来ます。