动画和旋转问题

出现了这么一种bug,具体来说就是走完旋转动画后发现之前物体的属性的大小不对

1 可以看出展开前是一个比较高的立方体,展开后图形是个正方体展开
2 可以看出展开前是一个比较高且扁的立方体,展开后图形是确都是细长方体

原因是什么呢?

因为结构构成不对。

xyz拉伸的时候我是针对整个立方体进行拉伸,对整个立方体加了一个ScaleTransform3D,如下图

但是展开的时候,我是分别对每个面进行动画旋转,比如这是其中一个面的展开动画效果

结果就是每个面都展开了,但是整体立方体还有一个ScaleTransform3D,我的视野是鸟瞰图,所以最后丢失了y的sacale,整体在xy上又分别加了scale

这也就是造成第一张图的原因

解决方法:
将整个立方体的transform拆分成每个面的transform

这将会引发另一个问题。
面是由两种旋转,一是原来的面的transform,带来的是拉伸变化, 一种是展开后的沿着轴旋转的transform
如果两个变换共同作用在面上,会出现问题,即当我拉伸后,轴旋转的旋转轴需要重新调整,
比如原来轴的位置是1,1,0,经过拉伸放大后,轴旋转的位置应该是2,2,0了,

如何避免这个问题呢?下个博客见

posted @ 2022-09-15 15:17  猝不及防  阅读(58)  评论(0编辑  收藏  举报