Aight का उपयोग कर एक त्रिकोण गोलाकार कोनों के साथ आकर्षित करने के लिए कैसे तो मैं तो जैसे एक त्रिकोण आकर्षित करने के लिए करना चाहते हैं:quartz2d/CoreGraphics
वर्तमान में मैं एक CAShapeLayer के संयोजन का उपयोग कर रहा हूँ और साथ पथ बनाने एक UIBezierPath (कोड नीचे है) और उसके बाद इसे एक अन्य परत के लिए मुखौटा के रूप में लागू करना (self.layer जैसा कि मैं UIView उपclass में हूं और लेयरक्लास सेट करने के बजाय मैं इसे इस तरह से कर रहा हूं ताकि मैं प्रारंभिक परत को संरक्षित कर सकूं)
वैसे भी कोड:
_bezierPath = [[UIBezierPath bezierPath] retain];
#define COS30 0.86602540378
#define SIN30 0.5
[_bezierPath moveToPoint:(CGPoint){self.frame.size.width/2.f-r*SIN30,r*COS30}];
[_bezierPath addArcWithCenter:(CGPoint){self.frame.size.width/2.f,r*COS30*2.f} radius:r startAngle:2*M_PI/3.f endAngle:M_PI/3.f clockwise:YES];
[_bezierPath addLineToPoint:(CGPoint){self.frame.size.width-r*SIN30,self.frame.size.height-r*COS30}];
[_bezierPath addArcWithCenter:(CGPoint){self.frame.size.width-r*SIN30-r,self.frame.size.height-r*COS30} radius:r startAngle:0.f endAngle:-M_PI/3.f clockwise:YES];
[_bezierPath addLineToPoint:(CGPoint){r*SIN30,self.frame.size.height-r*COS30}];
[_bezierPath addArcWithCenter:(CGPoint){r*SIN30+r,self.frame.size.height-r*COS30} radius:r startAngle:4*M_PI/3.f endAngle:M_PI clockwise:YES];
[_bezierPath closePath];
CAShapeLayer *s = [CAShapeLayer layer];
s.frame = self.bounds;
s.path = _bezierPath.CGPath;
self.layer.mask = s;
self.layer.backgroundColor = [SLInsetButton backgroundColorForVariant:SLInsetButtonColorForSLGamePieceColor(_color)].CGColor;
और दुर्भाग्य से परिणाम नहीं है कि मैं क्या, के लिए देख रहा था थोड़ा घुंडी बजाय कोनों बन (जैसे कि इसकी बहुत ज्यादा बदल)
धन्यवाद अग्रिम में
क्यों क्योंकि (30) और नहीं 60? – AlexWien
किस मामले में आप जिक्र कर रहे हैं? – DanZimm