android动画实现单摆效果

效果图

《android动画实现单摆效果》 最终效果

又赶上了一年一度的校招季这个效果来自一道笔试题让写出思路如何实现该效果所以按耐不住还是想用代码去实现一下当然实现起来也不是很复杂

思路

涉及到一些基本的物理定律

单摆的运动周期 T=2 * Math.PI * Math.sqrt(l / 10);

单摆的运动规律为正余玄函数

《android动画实现单摆效果》

《android动画实现单摆效果》

我们先考虑第一圆的运动规律

对于1圆我们坐标系的位置建立在o1位置为原点

它对应的 x y随时间的运动规律为 (第1个1/4 T和第4个1/4T)

int x = -(int) (l * Math.sin(angle) * Math.cos(W * jiange * count));

int y = (int) Math.sqrt(l * l – x * x);

count为一个自增量去代表时间变化

对于2圆我们坐标系的位置建立在o2位置为原点

它对应的 x y随时间的运动规律为

int x =0

int y =l; (l为摆长)

canvas.drawCircle(0, l, radius, paintcircle2);

对于3圆我们坐标系的位置建立在o3位置为原点

它对应的 x y随时间的运动规律为(第2个1/4 T和第3个1/4T)

int x = -(int) (l * Math.sin(angle) * Math.cos(W * jiange * count));

int y = (int) Math.sqrt(l * l – x * x);

变化规律与1相同

项目地址

https://github.com/huopochuan/Simplependulum

    原文作者:1琥珀川1
    原文地址: https://www.jianshu.com/p/89130fc91d70
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞