需要石英2d的帮助,这对我来说是全新的。
基本上我的应用程序需要按照触摸,从中心开始多次绘制该行。问题是它必须是动态的,线条必须平均分布(有点像从中心开始的章鱼)。我在android上的方式是我记得数组中的形状路径,而不是通过旋转坐标系多次绘制它,但我无法弄清楚如何在iOS上做到这一点。
我的旋转功能
- (void) rotateContext:(int)angle
{
CGContextTranslateCTM(UIGraphicsGetCurrentContext(), self.center.x, self.center.y);
CGContextRotateCTM(UIGraphicsGetCurrentContext(), radians(angle));
CGContextTranslateCTM(UIGraphicsGetCurrentContext(), -self.center.x, -self.center.y);
}
它只有在我尝试在drawRect()中执行时才有效,并且它会随之旋转所有路径。
您能否建议我解决问题的好方法?
由于
答案 0 :(得分:0)
这可以引导您找到解决方案: (可能甚至编译)
/* setup the context */
UIBezierPath *bpath = [UIBezierPath bezierPath];
UIBezierPath *subpath =
[UIBezierPath bezierPathWithOvalInRect:<#some rect#>];
[bpath appendPath:subpath];
/* add more stuff to the path as you wish */
bezierPath.lineWidth = 2;
/* draw the same path rotated multiple times */
for(NSInteger i = 0; i < 4; i++) {
[bpath applyTransform:CGAffineTransformMakeRotation(M_PI_2 * i)];
[bpath stroke];
}
/* teardown the context */
旋转贝塞尔曲线非常棘手,您需要根据预期的结果应用更复杂的变换。
那些bezier路径对象可以存储在数组中或任何你需要的地方。