サイトトップ

Director Flash 書籍 業務内容 プロフィール

HTML5テクニカルノート

Canvas 2D: Path2Dインターフェイス

ID: FN1501008 Technique: HTML5 and JavaScript API: Canvas 2D

これは実験的な技術です。仕様として定まっておらず、ブラウザによって実装が異なります。将来の仕様で変更される場合があります。

Path2Dインターフェイス
API Canvas 2D
Path2D()コンストラクタ
文法 Path2D([path])
概要 Path2Dインスタンスをつくる。
引数 path − Path2DオブジェクトまたはSVGパスを示す文字列。引数にもとづいて新たなインスタンスがつくられる。引数は省くことができる。
addPath()メソッド
文法 addPath(path[, transform])
概要 現行パスに引数のパスを加える。
引数

path − 加えるPath2Dオブジェクト。

transform − 加えるパスの変換行列として用いるSVGMatrix(省略できる)。

戻り値 なし。
closePath()メソッド
文法 closePath()
概要 現行サブパスの起点に戻ってパスを閉じる。現行の点と起点とは直線で結ばれる。すでにパスが閉じているか、1点しかないときは、何も実行されない。
引数

なし。

戻り値 なし。
moveTo()メソッド
文法 moveTo(x, y)
概要 新たなサブパスの開始点を定める。
引数 x, y − 新たな開始点のxy座標。
戻り値 なし。
line()メソッド
文法 line(x, y)
概要 現行の点と引数のxy座標を直線で結ぶ。
引数 x, y − 直線で結ぶxy座標。
戻り値 なし。
bezierCurveTo()メソッド
文法 bezierCurveTo(cp1x, cp1y, cp2x, cp2y, x, y)
概要 現行の点と終了点を3次ベジエ曲線で結ぶ。3次ベジエ曲線は、ふたつのコントロールポイントで定められる。
引数

cp1x, cp1y − 開始点のコントロールポイントのxy座標。

cp2x, cp2y − 終了点のコントロールポイントのxy座標。

x, y − 終了点のxy座標。

戻り値 なし。
quadraticCurveTo()メソッド
文法 quadraticCurveTo(cpx, cpy, x, y)
概要 現行の点と終了点を2次ベジエ曲線で結ぶ。2次ベジエ曲線は、ふたつの点に共通するひとつのコントロールポイントで定められる[*1]
引数

cpx, cpy − コントロールポイントのxy座標。

x, y − 終了点のxy座標。

戻り値 なし。
arc()メソッド
文法 arc(x, y, radius, startAngle, endAngle[, anticlockwise])
概要 パスに円弧を加える。
引数

x, y − 中心のxy座標。

radius − 半径。

startAngle, endAngle − 開始角と終了角。

anticlockwise − 半時計回りかどうかを示すブール値(デフォルトは時計回り)。

戻り値 なし。
arcTo()メソッド
文法 arcTo(x1, y1, x2, y2, radius)
概要 パスに円弧を加えて、現行の点とは直線で結ぶ。
引数

x1, y1 − 開始コントロールポイントのxy座標。

x2, y2 − 終了コントロールポイントのxy座標。

radius − 半径。

戻り値 なし。
ellipse()メソッド
文法 ellipse(x, y, radiusX, radiusY, rotation, startAngle, endAngle, anticlockwise)
概要 パスに楕円の弧を加える。
引数

x, y − 中心のxy座標。

radiusX, radiusY − x軸およびy軸方向の半径。

rotation − 回転角の度数。

startAngle, endAngle − 開始角と終了角。

anticlockwise − 半時計回りかどうかを示すブール値(デフォルトは時計回り)。

戻り値 なし。
rect()メソッド
文法 rect(x, y, width, height)
概要 長方形のパスをつくる。
引数

x, y − 左上角のxy座標。

width, height − 幅と高さ。

戻り値 なし。

[*1] 2次ベジエ曲線については、「パスにこだわる」をご参照ください。


説明

Canvas 2D APIのPath2Dインターフェイスはパスを定め、CanvasRenderingContext2Dオブジェクトで用いることができます。CanvasRenderingContext2Dのパスを扱うメソッドは、Path2Dにも備わっています。Path2Dオブジェクトにつくったパスは、必要なときいつでもCanvasで使えます。

Path2D()コンストラクタの引数にPath2Dオブジェクトを渡すと、パスを複製したインスタンスが得られます。また、SVGデータを文字列で与えれば、そのパスがのままCanvasに描けます。

var path = new Path2D("M10 10 h 80 v 80 h -80 Z");

引数なしにPath2D()コンストラクタでつくった空のパスには、CanvasRenderingContext2Dと同じメソッドを使ってパスが描けます。

var circle = new Path2D();
circle.arc(50, 50, 50, 0, 2 * Math.PI);
context2D.stroke(circle);

CanvasRenderingContext2Dのつぎのメソッドは、Path2Dオブジェクトを渡してパスが描けるようになりました。


Path2Dのパスを扱うメソッドの使い方については、MDNのPath2DあるいはCanvasRenderingContext2Dのつぎに掲げた「Examples」をご覧ください。


作成者: 野中文雄
作成日: 2015年1月29日


Copyright © 2001-2015 Fumio Nonaka.  All rights reserved.