API リファレンス: PathMeasure
PathMeasure は、パスの長さを計算し、パス上の任意の距離における位置と接線を求めるために使用されます。
概要
PathMeasure オブジェクトは Path で初期化されます。これはパスの輪郭を反復処理します。パスに複数の輪郭がある場合は、nextContour() を使用して次の輪郭に移動できます。
コンストラクタ
new PathMeasure(): 空のPathMeasureを作成します。new PathMeasure(path): 指定されたパスで初期化します。new PathMeasure(path, forceClosed):forceClosedが true の場合、パスが閉じていなくても閉じているものとして扱います。new PathMeasure(path, forceClosed, resScale):resScaleは測定の精度を制御します(デフォルトは 1.0)。
メソッド
状態管理
setPath(path, forceClosed): 新しいパスで測定器をリセットします。nextContour(): パス内の次の輪郭に移動します。存在する場合はtrueを返します。isClosed(): 現在の輪郭が閉じている場合、trueを返します。
測定
getLength(): 現在の輪郭の全長を返します。getPosition(distance): パス上の指定された距離にあるPointを返します。getTangent(distance): 指定された距離における接線(Pointベクトルとして)を返します。getRSXform(distance): 指定された距離におけるRSXformを返します。getMatrix(distance, getPosition, getTangent): 指定された距離における位置および/または接線を表すMatrix33を返します。
抽出
getSegment(startD, endD, dst, startWithMoveTo):startDとendDの間のパスのセグメントを、提供されたPathBuilderに返します。
例
java
Path path = Path.makeCircle(100, 100, 50);
PathMeasure measure = new PathMeasure(path);
float length = measure.getLength();
Point pos = measure.getPosition(length / 2); // 中間点を取得
Point tan = measure.getTangent(length / 2); // その点での方向を取得