All*_*lyn 13 iphone math scale catransform3d
我正在创建一个iPad应用程序,并希望使用当前视图大小更新用户.我曾经这样做是通过计算CGAffineTransform的比例并将xScale乘以(相关视图的)宽度和yScale乘以高度来实现的.我想继续这样做,但我不再进行二维转换了,我确定用什么方程从CATransform3D中提取比例信息.
你能帮我吗?
jla*_*z18 20
要获取图层的当前比例,您只需valueForKeyPath:在图层上执行:
CGFloat currentScale = [[layer valueForKeyPath: @"transform.scale"] floatValue];
Run Code Online (Sandbox Code Playgroud)
其他键可以在Apples Core Animation Programming Guide中找到
我不熟悉API,但CATransform3D看起来像是用于进行3D变换的常规4x4变换矩阵.
假设它仅表示比例,旋转和平移的组合,则可以通过CATransform3D分别根据行或列主要计算左上3x3的行或列的大小来提取比例因子.
例如,如果是行主要,则x方向上的标度是(m11*m11)+(m12*m12)+(m13*m13)的平方根.y和z标度同样是第二和第三行的大小.
从CATransform3DMakeTranslation它的文档看来,CATransform3D它确实是行主要的.
| 归档时间: |
|
| 查看次数: |
4598 次 |
| 最近记录: |