簡體   English   中英

內嵌非矩形

[英]Inset for non-rectangular shape

我想知道核心圖形中是否有任何功能可以讓您為非矩形形狀指定插入物,即與CGRectInset相當的東西? 我正在創建一條由一系列二次貝塞爾曲線組成的路徑,這些二次貝塞爾曲線構成特殊類型的橢圓,並且我想在其內部放入較小類型的橢圓。 是的,我知道我可能可以手動執行此操作,但是想知道Apple是否有簡單的方法來執行此操作?

CoreGraphics沒有指定與* rect * angles以外的形狀相關的函數,因為它不是必須的。 您所做的任何繪圖都是自己的問題,因此,需要您自己的解決方案。 可以自己復制CGRectMake() esque元素(它只是ac struct)。

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;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM