"变换"和"仿射变换"之间的区别在哪里?

Tha*_*nks 6 iphone core-animation uikit

有一个功能:

CATransform3DGetAffineTransform

返回由't'表示的仿射变换.如果't'不能精确表示为仿射变换,则返回值是未定义的.

我不是那么以数学为导向,所以一个易于理解的描述会非常好.维基百科在这里没什么大不了的.

Tob*_*que 7

仿射变换是在以下意义上不会"过度扭曲"几何形状的变换:

  • 在转换之后仍然位于一条直线上的点
  • 点之间的相对距离保持不变(因此正方形可能不再是正方形,但仍具有相等的边长)

因此旋转和缩放是仿射的 - 例如,投影不是.


mou*_*iel 0

CoreAnimation 使用 3D 变换。仿射变换是这些 3D 变换的 2D 子集。它们仅允许在 X、Y 平面上进行平移、旋转和缩放。

  • 这是不正确的 - 仿射变换是保留共线性和距离比的变换。平移、旋转、缩放等在三维空间中也是仿射的。 (2认同)