旋转模型是经常遇到了,我们之前用CABasicAnimation 可以旋转一个view,其实它也可以旋转一个SCNNode。
首先我们要明白一个概念,每个SCNNode 都有自身的三维坐标系,用CABasicAnimation就是让SCNNode绕自身的三维坐标轴旋转,所以要特别注意是坐标轴,不是这个SCNNode的几何中心。一般SceneKit 的自带的几个几何体的坐标系原点(0,0,0)就是这个它的几何中心,比如说SCNBox;SCNSphere等等,所以看上去跟绕几何中心旋转一模一样。
我们先从Demo 入手,这里是模拟 太阳-地球-月球 天体运动的demo,分以下几点:
1, 地球,月球自转
2, 月球绕着地球转
3, 地月系统绕着太阳转
如下图:
第一点 先实现地球,月球自转
// Rotate the moon
animation = [CABasicAnimation animationWithKeyPath:@"rotation"];
animation.duration = 1.5