0
想象一下,我想在给定的矩形中绘制自定义视图(例如100 x 100像素)。我的自定义视图的内容可能大于100 x 100。相反,有些内容未绘制,我想绘制100 x 100区域内的所有内容。例如,通常位于(125,140)的点现在将在点(25,40)处绘制。CGContext - “模”绘图?
有没有办法做到这一点,而不必(主要)修改绘图代码?请记住,我也绘制更复杂的形状,如贝塞尔路径。
想象一下,我想在给定的矩形中绘制自定义视图(例如100 x 100像素)。我的自定义视图的内容可能大于100 x 100。相反,有些内容未绘制,我想绘制100 x 100区域内的所有内容。例如,通常位于(125,140)的点现在将在点(25,40)处绘制。CGContext - “模”绘图?
有没有办法做到这一点,而不必(主要)修改绘图代码?请记住,我也绘制更复杂的形状,如贝塞尔路径。
也许你可以通过CGContextScaleCTM(...)来扩展你的绘画空间。
e.x.
CGFloat sx, sy;
sx = self.frame.size.width/desiredWidth;
sy = self.frame.size.height/desiredHeight;
CGContextScaleCTM(context, sx, sy);
编辑:
由于科多以下建议,你可能会寻找CGContextTranslateCTM(...)这将抵消你的上下文坐标一些X/Y值空间。
我猜ryyst是寻找CGContextTranslateCTM,它可以实现100像素的偏移量(而不是缩放输出)。 – Codo 2011-04-17 18:23:37
@科多是的,我认为你是对的。更新了答案。谢谢。 – Sam 2011-04-17 18:35:08
@Codo,Sam:我的例子的意思是,点(25,40)和(125,140)和(25,1240)将被绘制在同一个点上。这就是我称之为“模数”绘图的原因。 – ryyst 2011-04-17 20:03:07