在视图调整大小时缩放在drawRect中完成的绘制

时间:2013-06-06 23:56:29

标签: cocoa nsview drawrect

我还在学习Cocoa中自定义视图绘制的一些细节。 我有一个自定义视图,我根据固定大小其他地方的较大矩形中的对应点绘制线条和点。 我希望在调整视图大小时使我的绘图比例向上或向下,但保持与较大的rect相同的纵横比。

缩放绘图的最佳方法是什么? 我是否需要以某种方式应用仿射变换? 或者我应该画一个imageRef? 在这种情况下,我真的不确定如何做以太一,或者如何使其与视图的大小和坐标来自的较大rect的宽高比保持同步。 任何有关示例代码的提示或链接都非常感谢。

1 个答案:

答案 0 :(得分:1)

Concatenating affine transform听起来像是正确的解决方案。在两个维度中按相同因子缩放将保留绘图的纵横比,并且您可以使用简单除法来计算正确的因子(假设您不仅仅是从滑块或其他东西获取它)。

如果您还没有,我强烈建议您阅读Cocoa Drawing GuideQuartz 2D Programming Guide。有很多重叠,但解释不是复制粘贴的,所以如果一个指南对某些内容的解释没有意义,请在另一个指南中查找并尝试阅读该版本。