context . arcTo(x1, y1, x2, y2, radius) …… 直前の座標と直線でつながる円弧を作成する





























広告
arcTo(x1, y1, x2, y2, radius)メソッドは、直前の座標と直線でつながる円弧を作成する際に使用します。
引数(x1, y1)は、円弧の半径radiusに0を指定した場合に直前の座標(x0, y0)と直線で結ばれる点の座標です。
引数(x2, y2)は、円弧の半径radiusに0を指定した場合に(x1, y1)と直線で結ばれる点の座標です。
指定する座標は、いずれも<canvas>要素の左上端からの距離となります。
尚、引数(x1, y1)と(x2, y2)は、円弧の開始点と終了点の座標ではないので注意してください。円弧の開始点と終了点は自動算出されます。
引数radiusは、円弧の半径です。円弧の半径に負の値を指定するとエラー(INDEX_SIZE_ERR)となります。
■arcTo(x1, y1, x2, y2, radius)メソッドの基本的な動作
引数を適切に指定した場合のarcTo(x1, y1, x2, y2, radius)メソッドの動作は、以下のような流れとなります。
- 直前の座標点(x0, y0)と、点(x1, y1)を結ぶ直線が想定される
- 直前の座標点(x0, y0)から、円弧の開始点までが直線で結ばれる
- 円弧の開始点が自動算出されてサブパスに追加される
- 点(x0, y0)→点(x1, y1)→点(x2, y2)を結ぶ、最短となる半径radiusの円弧で結ばれる
- 円弧の終了点が自動算出されてサブパスに追加される

■arcTo(x1, y1, x2, y2, radius)メソッドの例外的な動作
引数の指定が以下のいずれかに当てはまる場合には、
点(x0, y0)と点(x1, y1)が直線で結ばれるだけで円弧は作成されません。
- 点(x0, y0)と点(x1, y1)が同じ座標の場合
- 点(x1, y1)と点(x2, y2)が同じ座標の場合
- 半径radiusが0の場合
- 点(x0, y0)、点(x1, y1)、点(x2, y2)が一直線上にある場合
■引数(値)の説明
- x1
- 円弧の半径radiusに0を指定した場合に直前の座標(x0, y0)と直線で結ばれる点のx座標
- y1
- 円弧の半径radiusに0を指定した場合に直前の座標(x0, y0)と直線で結ばれる点のy座標
- x2
- 円弧の半径radiusに0を指定した場合に(x1, y1)と直線で結ばれる点のx座標
- y2
- 円弧の半径radiusに0を指定した場合に(x1, y1)と直線で結ばれる点のy座標
- radius
- 半径の距離
■使用例
HTML + JavaScriptソース
<!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');
//ここに具体的な描画内容を指定する
//新しいパスを開始する
context.beginPath();
//パスの開始座標を指定する
context.moveTo(40,20);
//(40,20)→(140,120)→(240,20)を結ぶ、最短となる半径20の円弧を作成する
context.arcTo(140,120,240,20,20);
//現在のパスを輪郭表示する
context.stroke();
}
}
//-->
</script>
</head>
<body onLoad="test()">
<h2>Canvasで図形を描く</h2>
<canvas width="300" height="150" id="sample" style="background-color:yellow;">
図形を表示するには、canvasタグをサポートしたブラウザが必要です。
</canvas>
</body>
</html>
↓↓↓
ブラウザ上の表示
Canvasで図形を描く
■関連項目
<canvas> …… 図形を描く

広告