0
有沒有辦法讓用戶在iOS中使用圓形(透明圓)繪製三角形。我在考慮在圓圈中設置三個相等的點來創建三角形,並且在三角形構建時拉伸圓圈。也許使用bezierPathWithArcCenter或bezierPathWithOvalInRect。任何人都做過這個?使用圓繪製三角形
有沒有辦法讓用戶在iOS中使用圓形(透明圓)繪製三角形。我在考慮在圓圈中設置三個相等的點來創建三角形,並且在三角形構建時拉伸圓圈。也許使用bezierPathWithArcCenter或bezierPathWithOvalInRect。任何人都做過這個?使用圓繪製三角形
假設您已經擁有手勢識別器或其他系統來捕捉用戶觸摸的位置,則繪製本身很簡單。
CGContextRef context = UIGraphicsGetCurrentContext();
// Draw circle
CGFloat derivedRadius = self.radius * self.scale;
CGPoint origin = CGPointMake(self.center.x - derivedRadius, self.center.y - derivedRadius);
CGContextAddEllipseInRect(context, CGRectMake(origin.x, origin.y, derivedRadius * 2, derivedRadius * 2));
// Draw triangle
CGFloat t1 = self.rotation;
CGFloat t2 = self.rotation + ((2 * M_PI)/3);
CGFloat t3 = self.rotation + ((4 * M_PI)/3);
CGPoint p1 = CGPointMake(self.center.x + cosf(t1) * derivedRadius, self.center.y + sinf(t1) * derivedRadius);
CGPoint p2 = CGPointMake(self.center.x + cosf(t2) * derivedRadius, self.center.y + sinf(t2) * derivedRadius);
CGPoint p3 = CGPointMake(self.center.x + cosf(t3) * derivedRadius, self.center.y + sinf(t3) * derivedRadius);
CGPoint endpoints[] = { p1, p2, p3, p1 };
CGContextAddLines(context, endpoints, 4);
CGContextStrokePath(context);
凡self.radius
,self.scale
,self.center
和self.rotation
是捕獲用戶的手勢的結果屬性。旋轉應以弧度表示。
你想繪製一個三角形給定它的incircle? – 2012-11-20 21:12:57
有一個圓和裏面的三角形。 – JProg