0

CGMutablePathRef によって作成されたパスがあります

  CGMutablePathRef pointsPathpath = CGPathCreateMutable();
  CGPathMoveToPoint(pointsPathpath, NULL, firstPoint.x, firstPoint.y);
  CGPathAddLineToPoint(pointsPathpath, NULL, secondPoint.x, secondPoint.y);
  CGPathAddLineToPoint(pointsPathpath, NULL, thirdPoint.x, thirdPoint.y);
  CGPathAddLineToPoint(pointsPathpath, NULL, fourthPoint.x, fourthPoint.y);
  CGPathCloseSubpath(pointsPathpath);

その境界点を取得する方法はありますか?

前もって感謝します。

4

2 に答える 2

3

Core Graphics には、CGPath の「バウンディング ボックス」を計算する 2 つの方法があります。

  1. CGPathGetPathBoundingBox()
  2. CGPathGetBoundingBox()

最初のものは、パス内のすべてのポイントを囲む最小のバウンディング ボックスを返しますが、曲線のコントロール ポイントは含みません。

2 番目のものには、曲線の制御点が含まれています。

パスには曲線がないため、どちらも同じ長方形を返しますが、より高度なパスの場合、通常は異なる領域を返します。

以下の画像は、それらの違いを示しています。最後に円が付いた黒い線は、パス内の曲線の制御点です。

ここに画像の説明を入力

于 2013-06-27T18:13:01.050 に答える
1

CGPathGetBoundingBox() または CGPathGetPathBoundingBox() のいずれかを使用できます。

これらはどちらも CGPath ドキュメントにリストされています: http://developer.apple.com/library/ios/#documentation/graphicsimaging/Reference/CGPath/Reference/reference.html

于 2013-06-27T16:55:04.683 に答える