仿射变换与关键帧

时间:2008-12-10 22:04:42

标签: iphone cocoa-touch core-animation core-graphics

对于图形专家(我不是),这可能是一个愚蠢的问题,但是仿射变换和关键帧之间的区别是什么?我正在阅读iPhone食谱中的前者,她说'仿射变换使您能够通过将该对象从一个视图坐标系映射到另一个视图坐标系来更改对象的几何'。这让我想起了当我玩Adobe After Effects时,你设置了开始,“介于两者之间”和完成位置,并且会得到一个很好的视觉动画。他们称之为关键帧。那么这个和仿射变换的区别是什么呢?它是2D还是3D的东西?谢谢大家。

3 个答案:

答案 0 :(得分:7)

本身没有关于仿射变换的动画概念。当它说“改变物体的几何形状”时,它并不意味着有生命。仿射变换仅仅是翻译,旋转和缩放如何在幕后进行的数学基础。考虑这一点的一种方法是它们主要用于将相对坐标系映射到其他坐标系。

例如,如果您的面板宽100像素,高30像素,单选按钮位于(10,10),复选框位于(80,10)。然后将这个面板放在屏幕上的(40,15)并放大50%,这样它现在是50像素宽,15像素高,然后有一个仿射变换映射单选按钮(10,10)相对于面板,屏幕上的(45,20)。

答案 1 :(得分:6)

仿射变换是从一个坐标系到另一个坐标系的线性映射。如果我有一个仿射变换X,我可以取一个方形“s”,X(s)可以返回某种类型的平行四边形。没有时间概念,只是空间到空间的映射。

关键帧是空间/时间的固定状态。所以,你可以说,取你的方块并在3秒内执行变换X,在6秒执行另一个变换Y,并在它们之间进行插值。请注意,关键帧不需要仿射变换 - 您可以将键存储为非线性变换,甚至是非矩阵变换(例如视频游戏中的角色动画)

答案 2 :(得分:1)

仿射变换是线性变换,然后是平移。例如:

  • 向左旋转45度,然后向上移动10个像素
  • 放大2倍,然后向右移动10个像素。
  • 旋转95度。

它们比关键帧等简单得多。

免费获取贴纸的机会↓↓↓
豫ICP备18024241号-1