【问题标题】:iPhone CALayer's rotation axisiPhone CALayer的旋转轴
【发布时间】:2010-07-07 21:59:42
【问题描述】:

我在 X 轴上旋转一个 CALayer,但即使它在 Z 轴上发生位移,它也使用 Z = 0 作为旋转轴?

有没有办法告诉它使用平面的底部作为轴?

谢谢!

【问题讨论】:

    标签: iphone animation calayer


    【解决方案1】:

    CALayer 的变换使用图层的锚点作为其原点。您可以尝试调整图层的anchorPointanchorPointZ 属性。

    【讨论】:

    • 谢谢。我还没有完全按照我的意愿工作,但这肯定有帮助。您不会碰巧知道如何确定图层的当前 X 旋转,对吗?干杯:)
    • 转换只是一个表示矩阵的结构。您可以对底层浮点数进行一些数学运算以计算出旋转,但我不知道它在我的脑海中是什么。维基百科可能会有所帮助,搜索仿射变换。
    • 你确定凯文吗?我的印象是仿射变换只允许二维操作,包括倾斜,但没有透视。干杯
    • 仿射变换是 2D 的,这是 UIView 公开的,但 CALayer 公开了 3D 变换。 CALayer 的transform 属性是CATransform3D,但它有一个-affineTransform 方法,该方法返回最能代表CATransform3D 的CGAffineTransform。还有CATransform3DIsAffine()CATransform3DMakeAffineTransform()CATransform3DGetAffineTransform()等函数。
    • 事实上,这并不完全正确。更准确地说,仿射变换的经典思想(以及 UIView 公开的内容,以及 CGAffineTransform 类型)是 2D 变换,但仿射变换实际上映射在两个向量空间之间,所以 CATransform3D 是仿射变换3 个维度。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-03-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-05
    • 2012-09-29
    相关资源
    最近更新 更多