android动画实现单摆效果

来源:互联网 发布:葛根饮料销售网络方案 编辑:程序博客网 时间:2024/05/01 20:59

效果图



最终效果

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

思路


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

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

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





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

对于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

0 0
原创粉丝点击