确定CGMutablePathRef的边界?

时间:2013-06-27 16:52:47

标签: ios objective-c core-graphics

我有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);

有没有办法获得它的边界点?

先谢谢。

2 个答案:

答案 0 :(得分:3)

Core Graphics有两种方法来计算CGPath的“边界框”。

  1. CGPathGetPathBoundingBox()
  2. CGPathGetBoundingBox()
  3. 第一个返回包含路径中所有点的最小边界框,但包括曲线的控制点。

    第二个 包含曲线的控制点。

    您的路径没有任何曲线,因此它们都会返回相同的矩形,但对于更高级的路径,它们通常会返回不同的区域。

    下图说明了他们的不同之处。最后带圆圈的黑线是路径中曲线的控制点。

    enter image description here

答案 1 :(得分:1)

您可以使用CGPathGetBoundingBox()或CGPathGetPathBoundingBox()。

这两个都列在CGPath文档中: http://developer.apple.com/library/ios/#documentation/graphicsimaging/Reference/CGPath/Reference/reference.html