结构CATransform3D的m34的含义是什么,我只知道它可以改变视角,但当值为-0.001和0.001时,它是什么意思?
答案 0 :(得分:18)
您可以找到完整的详细信息here。请注意,Apple使用反向乘法顺序进行投影(相对于给定的链接),因此所有矩阵乘法都是相反的,并且所有矩阵都被转置。
含义的简短描述:
答案 1 :(得分:1)
我的决议在这里:
实体:
eye
- 从屏幕到眼睛的距离scale
- 变换对象的视觉比例distance
- 距转换对象的距离连接公式:
scale = eye / (eye + distance)
distance = eye * (1.0/scale - scale)
eye = distance / (1.0/scale - scale)
计算所选眼距的退格比例的z距离的示例:
CATransform3D transformByScaleAndEye(CGFloat scale, CGFloat eye) {
CATransform3D t = CATransform3DIdentity;
t.m34 = -1.0 / eye;
CGFloat distance = -eye*(1.0/scale - scale);
return CATransform3DTranslate(t, 0, 0, distance);
}