1
我有這樣的代碼來繪製圓角矩形:點是內圓角矩形?
void ContextAddRoundedRect(CGContextRef ctx, CGRect rect, CGFloat radius) {
CGFloat minX = CGRectGetMinX(rect);
CGFloat maxX = CGRectGetMaxX(rect);
CGFloat minY = CGRectGetMinY(rect);
CGFloat maxY = CGRectGetMaxY(rect);
CGContextMoveToPoint(ctx, minX + radius, minY);
CGContextAddArcToPoint(ctx, maxX, minY, maxX, minY + radius, radius);
CGContextAddArcToPoint(ctx, maxX, maxY, maxX - radius, maxY, radius);
CGContextAddArcToPoint(ctx, minX, maxY, minX, maxY - radius, radius);
CGContextAddArcToPoint(ctx, minX, minY, minX + radius, minY, radius);
}
我怎麼能計算出,如果給定的CGPoint是我的矩形內,考慮圓角?
這是偉大的,依然看着UIBezierPath,看看我能做到像'CGContextAddArcToPoint'無必須學習任何新的幾何。 –
@Yar對於UIBezierPath不支持的東西,您可以訪問它的'CGPath'屬性,執行'CGMutablePathRef'操作,然後使用'+ bezierPathWithCGPath:'返回一個'UIBezierPath'對象。 – MaxGabriel
@MaxGabriel真棒。你能否做出答案?這是讓我不再學習製作弧的新方法的好方法,這是我的首要目標。 此外,我很想看看我的代碼改變了多少,如果我使用'CGMutablePathRef'而不是隻是砰的東西到CGContext上。 –