【发布时间】:2012-01-06 17:36:46
【问题描述】:
如何仅使用对 CGAffineTransformMake() 以及 math.h 三角函数(例如 sin()、cos() 等)的一次调用,进行核心图形仿射变换以围绕角度 a 的点 x,y 旋转.,并且没有其他 CG 调用。
这里的其他答案似乎是关于使用多个堆叠变换或多步变换来移动、旋转和移动,使用多个核心图形调用。这些答案不符合我的具体要求。
【问题讨论】:
-
为什么你需要一个电话到
CGAffineTransformMake()?堆叠调用产生完全相同的结果,只是它们以一种可读且有意义的方式进行。如果你真的想在一个调用中完成,你最终只会复制堆栈调用中使用的相同数学,绝对没有好处。 -
可能有什么要求?您可以使用 CGAffineTransformConcat 将这些“堆叠”转换组合成一个 CGAffineTransform。结果将与各个组件的公式相同,所涉及的计算在内部将相同,或者在 CGAffineTransformConcat 的情况下可能更优化。
-
我希望矩阵方程用于不同(不一定是欧几里得)几何二维空间中的匹配但非图形模型对象。
-
也许添加有关您的“要求”的详细信息会鼓励社区提供更多帮助。 “堆叠”转换更具可读性,这通常是首选。
-
查看接受的答案以了解所需的详细信息:一步变换所需的正弦和余弦方程,可有效地用于直接计算二维物理模型中多个点的位置任何图形上下文,以及在图形上下文中旋转图像以完全匹配。可读性不在我声明的要求之列。
标签: ios math core-graphics cgaffinetransform