カスタム シェイプ (円、三角形、六角形など) を Cocoa アプリケーションに追加する方法を知っている人はいますか? 特別なオブジェクトを使用する必要がありますか? ありがとう。
カスタム形状で画像を追加するようなことは言わないでください。プロジェクトを実行するために形状の色を変更したいと考えています。
カスタム シェイプ (円、三角形、六角形など) を Cocoa アプリケーションに追加する方法を知っている人はいますか? 特別なオブジェクトを使用する必要がありますか? ありがとう。
カスタム形状で画像を追加するようなことは言わないでください。プロジェクトを実行するために形状の色を変更したいと考えています。
クラスを使用して、ベジェ曲線から任意の形状を作成できます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