在Cocoa中添加自定义形状

时间:2012-05-08 21:31:55

标签: cocoa

有没有人知道如何在Cocoa应用程序中添加自定义形状(例如圆形,三角形,六边形等)?我应该使用一些特殊物品吗?感谢。

不要说添加自定义形状的图片。我想改变形状的颜色来做我的项目。

2 个答案:

答案 0 :(得分:1)

您可以使用NSBezierPath类(class documentation)从bezier曲线中创建任何您想要的形状。

这是绘制多边形(五边形,六边形等)的类别和类方法。

@interface NSBezierPath (Polygons)
+ (NSBezierPath *)bezierPathWithPolygonAt:(NSPoint)origin
    radius:(float)r sides:(int)nsides;
@end

@implementation
+ (NSBezierPath *)bezierPathWithPolygonAt:(NSPoint)origin
    radius:(float)r sides:(int)nsides
{
    NSBezierPath *p = [NSBezierPath bezierPath];
    int i;
    for (i = 0; i < nsides; ++i) {
        float a = i * (atanf(1.0f) * 8.0f / nsides);
        NSPoint pt = NSMakePoint(origin.x + r * cosf(a),
                                 origin.y + r * sinf(a));
        if (i == 0)
            [p moveToPoint:pt];
        else
            [p lineToPoint:pt];
    }
    [p closePath];
    return p;
}
@end

答案 1 :(得分:0)

我认为你最好使用Quartz图形。

  

Quartz是Cocoa中所有图形的核心。它提供基本的图形数据结构和绘图程序。

看看这两个对你有帮助的教程:

Intro to Quartz

Intro to Quartz II

在石英中您可以轻松绘制任何形状并更改颜色。