gpt4 book ai didi

cocoa - 如何创建具有倾斜效果的 NSAffineTransform?

转载 作者:行者123 更新时间:2023-12-03 16:37:55 25 4
gpt4 key购买 nike

我对在 Cocoa 中绘图还很陌生,并且正在开发一个涉及六边形网格的实验性应用程序。为了简化这个过程,我想倾斜坐标系,使 Y 轴向左旋转 30 度。我在Apple的Cocoa Drawing Guide中遇到了这个,这表明这是可能的:

Combining a non-uniform scaling transform with a rotation transform can also give your content a skewed effect.

但是,我无法理解这是如何工作的,也无法找到任何示例。

如何设置 NSAffineTransform 以使 X 轴保持水平且 Y 轴逆时针旋转 30 度?

最佳答案

不幸的是,没有像使用变换、旋转等那样简单的方法来做到这一点。

您必须创建一个变换矩阵:

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(skewx),m21 为 tan(skewy)

Apple 文档中有更多有关矩阵的信息:https://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/CocoaDrawingGuide/Transforms/Transforms.html#//apple_ref/doc/uid/TP40003290-CH204-BCIIICJI

希望这有帮助!

关于cocoa - 如何创建具有倾斜效果的 NSAffineTransform?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12752331/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com