51099在线学习网 http://www.51099.com
开头语:mm公司的flashmx与以往最突出的就是新增的画线功能,虽然2004已经很优秀了,但我们也不能忘了他的前辈的 功劳。
好了,废话少说。其实编程语言最重要的就是和实际联系起来,运用数学模型和物理模型实现亮丽的效果(前提是你的电脑配置足够高,不要死机。)。上回就用了数学模型实现了滚动文本的特效,大家有兴趣的可以自己看看。
你有没有为实现一个准确画圆而绞尽脑汁?你是否尝试过用curveTo而未达到理想中的效果?这回我就向你介绍一个利用高等数学中的极限实现的面积求算效果。
(注:微积分大一高等数学最开始就已经学了)
首先介绍一点微积分的知识:
对于简单图形面积运算正方形,圆形大家都会,但是,不规则图形你会吗?前提是你知道函数表达式y=f(x)。

好了开始正题吧!我们对比一下利用curveTo和极限画出的圆。
[全屏欣赏]
[全屏欣赏]
不一样吧!那简直是一定的。好了开始吧!如图所示:
圆上坐标为x=r*sin(a), y=r*cos(a) ,利用角度的堤加实现画圆的效果,递加我们用的0.01的步长。
主体as为:
MovieClip.prototype.drawCircle = function(x, y, radius) {//第一函数
this.moveTo(x radius, y);//以(x,y)为圆心,radius为半径画圆
var jiaodu = 0;
while (jiaodu<2*Math.PI) {
jiaodu = 0.01;//角度递加0.01
this.lineTo(x Math.cos(radian)*radius, y Math.sin(radian)*radius);//中心坐标加上直角边长度即为坐标值
}
};
this.lineStyle(0);
this.drawCircle(200, 200, 100);//调用函数



其实熟悉初等数学的人都知道,利用极坐标就不用那么麻烦了
一些方程
圆的极坐标: x=rsin(a)
y=rcos(a);
椭圆极坐标:x=Asin(a)
y=Bcos(a);//这里我就不再说了
阿基米德螺线方程:
p=a;//a为角度
关于阿基米德螺线我们用:
MovieClip.prototype.drawtuo = function(cx, cy, n, r) {
this.moveTo(cx, cy);
var radian = 0;
while (radian<2*n*Math.PI) {//需要旋转的角度,就是一共几个圈
radian = 0.01;//角度递加,两个点的角度距离,可以控制大小
太大了死机我可不管:)
this.lineTo(cx Math.cos(radian)*radian*r, cy Math.sin(radian)*radian*r);//r其实就是控制螺线的大小
}
};
this.lineStyle(0);
this.drawtuo(200, 200, 20, 4);
51099在线学习网 http://www.51099.com