这两者有什么不同?
我相信他们有优点和缺点,在某些情况下他们会表现得更好。
有没有比较这两者的资源?
是不是有更好的动画(我想是CATransform3D)?为什么?
另外,我想我在某个地方读到过,文本清晰度可能是一个问题,是不是一个人在缩放文本方面更好?
发布于 2009-02-20 01:09:45
正如MSN所说,它们用于不同的情况。CGAffineTransform用于NSViews、UIViews和其他2-D核心图形元素的2-D操作。
CATransform3D是一个核心动画结构,可以对CALayers进行更复杂的3-D操作。CATransform3D具有与OpenGL模型视图矩阵相同的内部结构,当您意识到核心动画构建在OpenGL上时,这是有意义的(CALayers是OpenGL纹理的包装器,等等)。我发现,这种内部结构的相似性,再加上苹果提供的一些不错的助手函数,可以让你做一些简洁的OpenGL优化,就像我在here上写的那样。
当涉及到选择使用哪一个时,问问自己是要直接在2-D空间(CGAffineTransform)中使用视图,还是要在3-D (CATransform3D)中使用基础核心动画层。我更频繁地使用CATransform3D,但那是因为我花了很多时间在核心动画上。
发布于 2009-02-20 00:26:46
一种是线性二维变换,另一种是三维投影变换。至少这是我可以从文档中收集到的。
如果不需要将3d投影到屏幕上,请使用仿射变换。否则,请使用3d变换。3d变换本质上是4x4矩阵,而2d仿射变换是3x2。
https://stackoverflow.com/questions/567829
复制相似问题