0

長方形以外の形状のインセット、つまりCGRectInsetに匹敵するものを指定できる、コアグラフィックスの機能はありますか?特殊なタイプの楕円を構成する2次ベジェ曲線の束で構成されるパスを作成しています。その中に、より小さなタイプの楕円を収めたいと思います。はい、私はおそらくこれを手動で行うことができることを知っていますが、Appleがそれを行う簡単な方法があるかどうか疑問に思っていますか?

4

1 に答える 1

1

CoreGraphicsは、 * rect * angle以外の形状に関連する関数を指定する必要がないため、指定しません。あなたがするどんな絵もあなた自身の問題です、そしてそれ故にあなた自身の解決策が必要です。CGRectMake()-esque要素を自分で準コピーすることは可能です(これは単なる構造体です)。

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;
}
于 2012-08-02T05:43:50.900 に答える