CGAffineTransform来自两行 - 每行由一对CGPoints表示

时间:2009-06-24 07:37:22

标签: objective-c graphics core-graphics transform

您可能会看到我的目标 - 但是有没有简单方式从两行生成CGAffineTransform - 每个都由一对CGPoints表示:

A[(a1x,a1y), (a2x,a2y)],
B[(b1x,b1y), (b2x,b2y)]

当应用于A行时产生的CGAffineTransform当然会产生B行。它可能涉及平移,缩放和旋转。

当然,我希望能够在刷完一些触发后自己写这个但是我想知道是否有任何东西可以用来做这个吗?

注意:我不是要求你为我写这个 - 我只是不想错过核心图形技巧!

1 个答案:

答案 0 :(得分:1)

是的,但至少有四种解决方案:两个翻译和两个比例(每个操作和方向一个)。这不包括转换缩放的转换。

来自“The Math Behind the Matrices”

Quartz 2D Programming Guide可以很好地概述每项操作的运作方式;从那里开始,它应该足够简单,可以反转它,并为所需的操作和方向提供一个矩阵。

  

当然,我希望能够在刷完一些触发后自己写出来......

除旋转外,你不需要它。