我对用Cocoa绘图很陌生,并且正在开发一个涉及六边形网格的实验应用程序。为了简化这个问题,我想使坐标系倾斜,使Y轴向左旋转30度。我在苹果的可可绘图指南中看到了这一点,这表明这是可能的:
将非均匀缩放变换与旋转变换相结合也会给你的内容一个扭曲的效果。
然而,我不明白这将如何工作,或找到任何例子。
如何设置NSAffineTransform,使X轴保持水平,Y轴逆时针旋转30度?
发布于 2012-10-05 18:56:51
不幸的是,没有像转换、旋转等这样简单的方法来做到这一点。
您必须创建一个转换矩阵:
0 tan(skewy) 0
tan(skewx) 0 0
0 0 1将setTransformStruct:与NSAffineTransformStruct结合使用
typedef struct _NSAffineTransformStruct {
CGFloat m11, m12, m21, m22;
CGFloat tX, tY;
} NSAffineTransformStruct;表示倾斜,m11、m22、tx和ty为零;m12为tan(斜),m21为tan(斜)。
苹果的文档中有更多关于矩阵的信息:编号/doc/uid/TP40003290-CH 204-BCIIICJI
希望这能有所帮助!
https://stackoverflow.com/questions/12752331
复制相似问题