第三章 动画中三角函数的应用
这一章介绍了
1 什么是三角法
2 角度
3 Flash中的一些三角函数
4 旋转
5 波
6 圆和椭圆
7 毕达哥拉斯定理(就是我们说的勾股定理)
8 两点间的距离
9 总结了本章的一些有用的公式
有一些还是跳过去吧,只记录一下和AS相关的,像三角法说了些,一个三角形有三条边之类的就略去了。
弧度和角度:
来测量一个角是用的单位是度和弧度,对于度你应该相当熟悉了,你也可以画出45度90度的角,180度是一条直线,360是一个圆…………….
1弧度大约等于57.2958度
90度是π/2,180度是π,360度是2π
在Flash里π用Math.PI来表示
在用函数进行计算运动轨迹的时候我们需要用弧度,而描述它的旋转的时候我们需要用角度,在Flash里角度和弧度的转换公式是这样的:
radians = degrees * Math.PI / 180
degrees = radians * 180 / Math.PI
Flash中的三角函数:
Math.sin,Math.cos,Math.tan,Math.asin,Math.acos,Math.atan.Math.atan2
Rotation:
利用Math.atan2只需要知道一个坐标,dx和dy是以arrow的注册点为原点的坐标
程序代码
onEnterFrame = function(){
var dx = _xmouse - arrow._x;
var dy = _ymouse - arrow._y;
var radians = Math.atan2(dy, dx);
arrow._rotation = radians * 180 / Math.PI;
}
Flash动画
在线播放
Waves:
角度从0-360度或者0-2pi,值从-1—1之间.
如果乘以某个值,例如50,则值是-50-50之间,在场景中可以指定他的运动位置在加上一个值例如200,则范围是250-150之间。
程序代码
angle = 0;
onEnterFrame = function(){
ball._y = 200 + Math.sin(angle) * 50;
angle += .1;
}
Flash动画
在线播放
200是中心点的位置,50是幅度范围,0.1是速度,这样我们可以更加形象的描述
程序代码
angle = 0;
centerY = 200;
range = 50;
speed = .1;
onEnterFrame = function(){
ball._y = centerY + Math.sin(angle) * range;
angle += speed;
}
可以在进行一些调整把X的移动也加上。(我们知道如果是物理中的波的话X方向是没有移动的,波传递的只是能量,它只在原地上下震动,这里只是加一个效果,或者叫一个轨迹吧。)
程序代码
angle = 0;
centerY = 200;
range = 50;
xspeed = 1;
yspeed = .05;
onEnterFrame = function(){
ball._x += xspeed;
ball._y = centerY + Math.sin(angle) * range;
angle += yspeed;
}
Flash动画
在线播放
同样的原理,你可以应用到各种属性
程序代码
angle = 0;
centerScale = 100;
range = 50;
speed = .1;
onEnterFrame = function () {
ball._xscale = ball._yscale=centerScale+Math.sin(angle)*range;
angle += speed;
};
Flash动画
在线播放
Waves with the drawing API:
结合画线函数lineTo,画出正弦波的图
程序代码
angle = 0;
centerY = 200;
range = 50;
xspeed = 1;
yspeed = .05;
moveTo(0, 200);
lineStyle(1,0, 100);
x = 0;
onEnterFrame = function(){
x += xspeed;
y = centerY + Math.sin(angle) * range;
lineTo(x, y);
angle += yspeed;
}
Flash动画
在线播放
英语基础差,读起来太费劲了,简直就是通过AS来学英语...................
过会在写第三章剩下的部分,得先给校长做演示文稿了,很头疼啊。
FROM: http://lovejulia.cn/blog/article.asp?id=104 |