2012-08-02 131 views
0

我在想,是否有核心图形中的任何功能,可让您指定一个非矩形形状的插图,即与CGRectInset相媲美的插图?我正在创建一条由构成一个特殊类型的椭圆的一群二次贝塞尔曲线组成的路径,并且我希望在其中包含一个更小类型的椭圆。是的,我知道我可以手动做到这一点,但想知道苹果是否有一个简单的方法来做到这一点?插入非矩形形状

回答

1

CoreGraphics没有指定与* rect *以外的形状有关的函数,因为它不必。你所做的任何绘图都是自己的问题,因此,你自己的解决方案是必需的。您可以自己准备一个CGRectMake() -esque元素(它只是一个c结构)。

struct CFIElipseRect { 
    CGPoint origin; 
    CGSize size; 
    CGFloat arcLength; 
    CGFloat vertices; 
    CGFloat cornerRadius; //optional, just a thought. 
}; 
typedef struct CFIElipseRect CFIElipseRect; 


CFIElipseRect CFIElipseRectMake(CGPoint origin, CGSize size, CGFloat arcLength, CGFloat vertices, CGFloat cornerRadius) { 
    CFIElipseRect rect; 
    rect.origin = origin; 
    rect.size = size; 
    rect.arcLength = arcLength; 
    rect.vertices = vertices; 
    rect.cornerRadius = cornerRadius; 
    return rect; 
} 

CFIElipseRect CFIElipseRectInset(CFIElipseRect rect, float dx, float dy) { 
    rect.size.x -= dx; 
    rect.size.y -= dy; 
    return rect; 
}