Jas*_*ues 5 core-animation objective-c catransform3d ios catransform3drotate
我有一个高度为50的图层,我将它围绕x轴旋转...如何在旋转进行时计算高度?
CATransform3D subLayerTransform = CATransform3DMakeTranslation(0, 0, 0);
subLayerTransform.m34 = -1 / 1800; //How does height relate to perspective and angle?
subLayerTransform = CATransform3DTranslate(subLayerTransform, 0, 0, 0);
subLayerTransform = CATransform3DRotate(subLayerTransform, 45 * (M_PI / 180), 1, 0, 0);
_transitionLayer.sublayerTransform = subLayerTransform;
Run Code Online (Sandbox Code Playgroud)
绕 y 轴旋转
高度为 y1 - y0。因此计算新的 y1 和 y0:
CGFloat y0 = 0;
CGFloat y1 = 50;
CGFloat z = -1800; //This relates to the m34 perspective matrix.
y0 = y0 * cos(radians(45)) - z * sin(radians(45));
y1 = y1 * cos(radians(45)) - z * sin(radians(45));
CGFloat newHeight = y1 - y0;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
987 次 |
| 最近记录: |