flash 制作求函数解析式


 

源文件下载
代码如下:

stop();
var a:Number;
var k:Number;
var b:Number;
var c:Number;
var d:Number;
d= 0;
function yicihanshu(q:Number):void
{
xuze.gotoAndStop(2);
d = 1;
}
yi.addEventListener(MouseEvent.MOUSE_DOWN, yicihanshu);
function fanbilihanshu(q:Number)
{
xuze.gotoAndStop(1);
d = 2;
}
fan.addEventListener(MouseEvent.MOUSE_DOWN,fanbilihanshu);
function zhenbilihanshu(q:Number):void
{
xuze.gotoAndStop(1);
d = 3;
}
zheng.addEventListener(MouseEvent.MOUSE_DOWN,zhenbilihanshu);
function ercihanshu(q:Number):void
{
xuze.gotoAndStop(3);
d = 4;
}
er.addEventListener(MouseEvent.MOUSE_DOWN,ercihanshu);
function jishuan(q:Number)
{
switch (d)
{
case 0 :
shuchu.text = "先选择函数类型";
case 1 :
k=((xuze.Y2.text)-(xuze.Y1.text))/((xuze.X2.text)-(xuze.X1.text));
b=(xuze.Y1.text)-k*(xuze.X1.text);
shuchu.text = "y" + "=" + k + "x" + "+" + b;
break;
case 2 :
k=(xuze.X0.text)*(xuze.Y0.text);
shuchu.text = "y" + "=" + k + "/" + "x";
break;
case 3 :
k=(xuze.Y0.text)/(xuze.X0.text);
shuchu.text = "y" + "=" + k + "x";
break;
case 4 :
a=(xuze.Y5.text)/(((xuze.X4.text)-(xuze.X5.text))*((xuze.X3.text)-(xuze.X5.text)))
+(xuze.Y4.text)/(((xuze.X4.text)-(xuze.X5.text))*((xuze.X4.text)-(xuze.X3.text)))
+(xuze.Y3.text)/(((xuze.X3.text)-(xuze.X4.text))*((xuze.X3.text)-(xuze.X5.text)));
b=((xuze.Y4.text)-(xuze.Y3.text)-a*((xuze.X4.text)*(xuze.X4.text)-(xuze.X3.text) *(xuze.X3.text)))/((xuze.X4.text)-(xuze.X3.text));
c=xuze.Y3.text-a*(xuze.X3.text)*(xuze.X3.text)-b*xuze.X3.text;
shuchu.text = "y" + "=" + a + "x²" + "+" + b + "x" + "+" + c;
}
}
queding.addEventListener(MouseEvent.MOUSE_DOWN,jishuan);

注:

yi,fan,zheng,er,queding分别为一次函数,反比例函数,正比例函数,二次函数 按钮的实例名称。

xuze为填入坐标的影片剪辑的实例名称。

X1~5和Y1~5均为坐标文本实例名称。



计算方法:

计算正比例函数和反比例函数的解析式的方法比较简单这里就不说了。

计算一次函数解析式y=kx+b需要两个坐标(x1,y1),(x2,y2) 计算时列出方程组:

y1=kx1+b

y2=kx2+b

解得:

k=(y2-y1)/(x2-x1)

b=y1-kx1

根据这个就可以直接由两个坐标求k,b的值。

计算二次函数解析式比较麻烦,但也可以推出公式

计算y=ax²+bx+c时需要三个坐标(x1,y1),(x2,y2),(x3,y3),列出方程组:

y1=ax1²+bx1+c

y2=ax2²+bx2+c

y3=ax3²+bx3+c

解得:

a=y3/((x2-x3)(x1-x3))+y2/((x2-x3)(x2-x1))+y1/((x1-x2)(x1-x3))

b=(y2-y1-a(x2²-x1²))/(x2-x1)

c=y1-ax1²-bx1

这样只要写出三个坐标,根据公式可直接求的a,b,c的值

你也可以试着推一下,但和我推的结果可能不一样,验算正确就可以了。