我的问题在于使用UIKit和CoreGraphic绘制,旋转,翻译我的上下文。
阅读 apple documentation 在Arcs和rotation的小节中,我知道
和轮换
在我的项目中,我已经覆盖了drawRect并通过UiBezierPath
创建了一个rettangle。
后来,我想要对我的矩形进行转换和旋转,因此我调用了Core Graphic函数UIGraphicsGetCurrentContext();
输入
self.situation=UIGraphicsGetCurrentContext();
CGContextTranslateCTM(self.situation,50,50);
CGContextRotateCTM(self.situation, RADIANS_FOR_DEGREE(90));`
转换将我的上下文从左到右和y从上到下转换为y(就好像坐标系在UpLeft角落,所以遵循UIKit规则) 并按顺时针方向旋转(如CoreGraphic规则)。
此外,如果我添加一个UISlider来制作用于旋转和转换的运行时动画,并使用Core Graphic函数创建这两个方法
-(void)rotateRectOfDegree:(float)degree{
CGContextRef context=self.situation;
CGContextRotateCTM(context, RADIANS_FOR_DEGREE(degree));
[self setNeedsDisplay];
}
-(void)traslateRectOfPointOfY:(float)point{
CGContextRef context=self.situation;
CGContextTranslateCTM(context,self.bounds.origin.x,point);
[self setNeedsDisplay];
}
这次旋转是逆时针的正面度,与我在文档中看到的形成鲜明对比,而traslation遵循文档中的文档规则。
问题出在哪里?我的论点在哪里错了?