scale(x, y)メソッドは、拡大縮小する際に使用します。
引数xは水平方向の伸縮の倍数を、
引数yは垂直方向の伸縮の倍数をそれぞれ表します。
変形を適用する場合には、先に変形を指定してから図形を描画するという順序になります。
変形を後から指定しても、先に描画した図形には変形が適用されないので注意してください。
複数の変形を適用する際には、指定順序を意識する必要があります。
例えば、拡大→回転→拡大の順序と、拡大→拡大→回転の順序では、それぞれの変形結果が異なる場合があります。
一例を挙げると、
「正方形の幅を2倍に拡大→幅を2倍に拡大→90度回転」では、幅が4倍の長方形が90度回転した状態(縦長の長方形)となりますが、
「正方形の幅を2倍に拡大→90度回転→幅を2倍に拡大」では、幅と高さがそれぞれ2倍の正方形となります。
複数の変形を適用する際には、実行する変形の順序とは逆順にソースを記述する必要があります。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>canvasで図形を描く</title>
<script type="text/javascript">
<!--
function test() {
//描画コンテキストの取得
var canvas = document.getElementById('sample');
if (canvas.getContext) {
var context = canvas.getContext('2d');
//ここに具体的な描画内容を指定する
//左から20上から20の位置に幅50高さ50の輪郭の四角形を描く
context.strokeRect(20,20,50,50);
//幅2倍高さ0.5倍を指定した上で、
//左から20上から20の位置に幅50高さ50の塗りつぶしの四角形を描く
context.scale(2, 0.5);
context.fillRect(20,20,50,50);
}
}
//-->
</script>
</head>
<body onLoad="test()">
<h2>Canvasで図形を描く</h2>
<canvas width="300" height="150" id="sample" style="background-color:yellow;">
図形を表示するには、canvasタグをサポートしたブラウザが必要です。
</canvas>
</body>
</html>