用网络画板实现矩形在平面上滚动的动态课件
来源:网络收集 点击: 时间:2024-01-21先来分析矩形的初始状态:
假设矩形的边长是:AB=a,BC=b,初始位置是A位于原点,B的坐标是(a,0),那么C是(a,b),D为(0,b)。

在矩形翻滚的时候,设线段AB旋转的度数为t,那么,A、B、C、D的坐标,就是关于t的函数,这些函数的周期是2π。

当0≤tπ/2的时候,A的坐标是(a-a*cos(t),a*sin(t))。

当π/2≤tπ的时候,A的坐标是(a+b-b*cos(t-pi/2)+a*sin(t-pi/2),a*cos(t-pi/2)+b*sin(t-pi/2)),比较复杂了。

当π≤t3*π/2的时候,A的坐标是(2*a+b+b*sin(t-pi),b*cos(t-pi))。

当3*π/2≤t2*π的时候,A的坐标是(2*a+2*b,0)。

那么,在第一个周期内:
A的横坐标为:if(mod(t, 2 * pi)=0 and mod(t, 2 * pi)pi/2,a-a*cos(t),mod(t, 2 * pi)=pi/2 and mod(t, 2 * pi)pi,a+b-b*cos(t-pi/2)+a*sin(t-pi/2),mod(t, 2 * pi)=pi and mod(t, 2 * pi)3*pi/2,2*a+b+b*sin(t-pi),mod(t, 2 * pi)=3*pi/2 and mod(t, 2 * pi)2*pi,2*a+2*b);
A的纵坐标为:if(mod(t, 2 * pi)=0 and mod(t, 2 * pi)pi/2,a*sin(t),mod(t, 2 * pi)=pi/2 and mod(t, 2 * pi)pi,a*cos(t-pi/2)+b*sin(t-pi/2),mod(t, 2 * pi)=pi and mod(t, 2 * pi)3*pi/2,b*cos(t-pi),mod(t, 2 * pi)=3*pi/2 and mod(t, 2 * pi)2*pi,0)。

当AB的旋转角度大于2π的时候,A的横坐标需要加上:
2*(a+b)*floor(t / (2 * pi)),
而纵坐标的函数式保持不变。

这样,就可以用a、b、t来表示出每一刻A的坐标:
A的横坐标为:2*(a+b)*floor(t / (2 * pi))+if(mod(t, 2 * pi)=0 and mod(t, 2 * pi)pi/2,a-a*cos(t),mod(t, 2 * pi)=pi/2 and mod(t, 2 * pi)pi,a+b-b*cos(t-pi/2)+a*sin(t-pi/2),mod(t, 2 * pi)=pi and mod(t, 2 * pi)3*pi/2,2*a+b+b*sin(t-pi),mod(t, 2 * pi)=3*pi/2 and mod(t, 2 * pi)2*pi,2*a+2*b);
A的纵坐标为:if(mod(t, 2 * pi)=0 and mod(t, 2 * pi)pi/2,a*sin(t),mod(t, 2 * pi)=pi/2 and mod(t, 2 * pi)pi,a*cos(t-pi/2)+b*sin(t-pi/2),mod(t, 2 * pi)=pi and mod(t, 2 * pi)3*pi/2,b*cos(t-pi),mod(t, 2 * pi)=3*pi/2 and mod(t, 2 * pi)2*pi,0)。
以此绘制直角坐标点A。

同样的,也可以用a、b、t来表示出每一刻的B、C、D的坐标。

构造t的动画按钮,就可以实现矩形的滚动。

注意,矩形的大小,可以通过a和b来调整;
如果希望矩形滚动的次数多一点,需要增大t的动画按钮的最大值,同时把矩形变小,否则矩形就会出界。

本文的主要思想,就是构造出矩形各点的实时坐标。
网络画板矩形的滚动动态课件版权声明:
1、本文系转载,版权归原作者所有,旨在传递信息,不代表看本站的观点和立场。
2、本站仅提供信息发布平台,不承担相关法律责任。
3、若侵犯您的版权或隐私,请联系本站管理员删除。
4、文章链接:http://www.1haoku.cn/art_1742.html