2

对于图形专家(我不是)来说,这可能是一个愚蠢的问题,但是仿射变换和关键帧之间有什么区别?我在 iPhone 食谱中读到了前者,她说“仿射变换使您能够通过将对象从一个视图坐标系映射到另一个视图坐标系来更改对象的几何形状”。这让我想起了我玩 Adob​​e After Effects 的时候,你会设置开始、“中间”和结束位置,并且会得到一个漂亮的视觉动画。他们称之为关键帧。那么这个和仿射变换有什么区别。它是 2D 与 3D 的东西吗?谢谢大家。

4

3 回答 3

7

本机仿射变换中没有动画的概念。当它说“改变对象的几何形状”时,它并不意味着动画。仿射变换仅仅是关于如何在引擎盖下执行平移、旋转和缩放的数学基础。一种思考方式是,它们主要用于将相对坐标系映射到其他坐标系。

例如,如果您有一个 100 像素宽 x 30 像素高的面板,在 (10, 10) 处有一个单选按钮,在 (80, 10) 处有一个复选框。然后将此面板放置在屏幕上的 (40, 15) 处并放大 50%,使其现在为 50 像素宽 x 15 像素高,然后有一个仿射变换将单选按钮从 (10, 10) 映射相对于面板,到屏幕上的 (45, 20)。

于 2008-12-10T22:22:30.227 回答
6

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

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

于 2008-12-10T22:21:40.260 回答
1

仿射变换是一个线性变换,然后是一个平移。例子是:

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

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

于 2008-12-10T22:21:59.400 回答