gpt4 book ai didi

ios - CATransform3D:计算透视变换后的高度

转载 作者:可可西里 更新时间:2023-11-01 04:44:18 26 4
gpt4 key购买 nike

我有一个高度为 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;

最佳答案

绕y轴旋转

  • y' = y*cos q - z*sin q
  • z' = y*sin q + z*cos q
  • x' = x

高度是 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;

关于ios - CATransform3D:计算透视变换后的高度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16790837/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com