0

カスタム シェイプ (円、三角形、六角形など) を Cocoa アプリケーションに追加する方法を知っている人はいますか? 特別なオブジェクトを使用する必要がありますか? ありがとう。

カスタム形状で画像を追加するようなことは言わないでください。プロジェクトを実行するために形状の色を変更したいと考えています。

4

2 に答える 2

1

クラスを使用して、ベジェ曲線から任意の形状を作成できますNSBezierPath(クラスのドキュメント)。

これは、多角形 (五角形、六角形など) を描画するためのカテゴリとクラス メソッドです。

@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
于 2012-05-09T06:47:15.327 に答える
0

そんなあなたにはQuartzのグラフィックを使うのがベストだと思います。

Quartz は、Cocoa のすべてのグラフィックスの中心にあります。基本的なグラフィックス データ構造と描画ルーチンを提供します。

次の 2 つのチュートリアルをご覧ください。

クォーツの紹介。

Quartz IIの紹介。

クォーツでは、どんな形も簡単に描くことができ、色を変えることもできます。

于 2012-05-09T06:02:12.117 に答える