gpt4 book ai didi

ios - 夸大 CATransform3D Perspective 的透视图

转载 作者:行者123 更新时间:2023-11-28 20:00:33 28 4
gpt4 key购买 nike

我有一个要添加到 View 中的动画。在动画中,我有一个像折叠一样折叠的单元格。我将 View 分成两个单独的层,并在每个层上应用旋转。这是有效的,但是,效果比我想要的更微妙。我正在寻找一种方法来增加动画期间延伸的中心线末端(每层的顶部和底部边缘)之间的间隙。基本上,两半不够高,看起来不像是向后折叠。这是我目前的中间动画,橙色线条大约是我希望线条在动画期间落下的位置:

enter image description here

这是处理旋转的代码:

- (CABasicAnimation *)foldLayerToValue:(CGFloat)toValue expanding:(BOOL)expanding
{
CABasicAnimation *animation = [CABasicAnimation animationWithKeyPath:@"transform"];
CATransform3D rotate = CATransform3DIdentity;
rotate.m34 = 1.0 / -2000.f;

rotate = CATransform3DRotate(rotateAndScale, [self radiansFromDegrees:toValue], 1.f, 0.f, 0.f);

animation.toValue = [NSValue valueWithCATransform3D:rotateAndScale];

return animation;
}

这被添加到 CATransaction 中,该 CATransaction 还在动画期间将下部向下移动了正确的量。我尝试为动画添加比例因子,但这对整个层都有影响,同时缩放顶部和底部边缘。我尝试在层旋转时增加层的高度,但这也产生了令人不快的结果。

有什么想法吗?有什么办法可以逐个角地手动设置位置吗?

我认为部分问题是我的 anchor 在中心线上。在旋转过程中,顶部和底部边缘越来越靠近 POV,而不是中心线越来越远。您可以看到角落稍微偏离屏幕,这限制了您可以看到的效果。我以前有一个版本, anchor 位于层的顶部和底部,但我无法让两层在动画发生时保持“接触”。我曾尝试在动画期间向 Z 坐标添加平移,但它似乎对任何东西都没有影响。

最佳答案

您使用的值 (-1.0/2000.0) 对应于远离相机/眼睛并且通常具有低视角的对象。如果您想要具有更多视角的东西,那么您应该将其更改为对应于与相机的较小距离的东西。通常大约 500-800 的范围是“正常”距离,因此您可能正在寻找 200-400 范围内的东西。

也就是:把.m34的值改成-1.0/200.0,就会有更多的视角。

关于ios - 夸大 CATransform3D Perspective 的透视图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24342942/

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