ios 3D引擎 SceneKit 开发(5) --关于旋转的几点问题(2)

如果还没看前一篇,可以移驾看看:ios 3D引擎 SceneKit 开发(4) –关于旋转的几点问题(1)

上一篇我们用CABasicAnimation 来模拟了太阳-地球-月球的天体运动。其中月球绕太阳运动和月球绕地球运动都可以看做一个点绕另一个点作圆周运动。(当然现实中是椭圆运动,有远地点,近地点,这里我们看作圆周运动)

一个点绕另一个点作圆周运动,是不是很熟悉。对,就是我们之前学习的数学知识,这里完全可以用数学知识做。

相关数学知识点: 任意点a(x,y),绕一个坐标点b(rx0,ry0)逆时针旋转a角度后的新的坐标设为c(x0, y0),有公式:

x0= (x - rx0)*cos(a) - (y - ry0)*sin(a) + rx0 ;

y0= (x - rx0)*sin(a) + (y - ry0)*cos(a) + ry0 ;

OK,有这些数学基础,那我们就很好做了,我们让地月系统绕太阳转的效果用数学方法来实现。太阳(sunNode)是b点,地月系统(earthGroupNode)是a点,我们将地月系统添加到太阳里面:

[_sunNode addChildNode:_earthGroupNode];

那么相对于a点来说,b点的坐标就是(0,0),然后我们通过计算得到c点,让

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值