阳光VIP

少壮不努力,老大徒伤悲。平日弗用功,自到临期悔。
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

Flash应用数学:直线方程

Posted on 2012-02-17 20:15  阳光VIP  阅读(118)  评论(0编辑  收藏  举报

一,数学

直线方程: y=f(x); Ax+BY+C=0;

斜截式:y=kx+b;

点斜公式:y-y1=k(x-x1);

斜率公式: k=y-y1/(x-x1);

截距式:x/a+y/b=1; 

直线的参数方程:

它的推算: 点斜公式:y-y0=tg(a)(x-x0);转换为参数方程。

第一步: (y-y0)/sin(a)=(x-x0)/cos(a);

第二步:设置参数两边T

(y-y0)/sin(a)=t;

(x-x0)/cos(a)=t;

第三步:转换

x=x0+t*cos(a);

y=y0+t*sin(a);

二:利用直线方程来创作

 

第一步:创建一个名为Ball的小球,链接Ball类。

第二步:复制n个球在我们的场景上,并初始化小球的坐标

假设我们设置为20

list为数组,使用数组来管理我们创建的ball 实例。指定初始化位置 x和y

然后分布小球成一条直线:这里是从第二小球开始分布,也就是说数组的list【1】这个实例来分布它的位置,他的位置以前一个实例为基础,每一个小球和是前一个小球都相差 x轴为20,y轴为15

第三步:产生动画

为了使复制的物体能够产生效果,我们加人了rotation这个属性,让其产生角速度变化

addEventListener(Event.ENTER_FRAME,Run);

ball

这样一个效果就出来了。

三:改造算法 

  把上面的一些琐碎的代码再缩成为一个参数方程

这样的话同样可以得到上面的结果,反而代码要求简化了很多。

当i=0的时候,第一个小球list【0】的坐标为(50,60)

当i=1的时候,第二个小球list【1】的坐标就应该参数第一个进行斜率运算。倾斜30度,运行i*20的线段。这样就到达了第二点的位置。

当i=2的时候.....

.................

..........z直到最后。

这个很类似一个速度的分量公式

vx=speed*cos(a);

vy=speed*sin(a);

这样就是我们一个物理经常要用到的公式。速度分量的应用。