网站制作学习网Flash→正文:flash actionscript as3程序生成五角星
字体:

flash actionscript as3程序生成五角星

Flash 2011/8/19 18:04:33  点击:不统计

原文是网站制作学习网的FoAsP.cn

 flash绘制五角星程序,绘制五角星分析,代码分析,flash如何通过代码绘制生成五角星的。
看到书上面有对于五角星绘制的类,把他贴下来了,然后进行分析。
代码如下:
package  {
 import flash.display.Sprite;
 public class Star extends Sprite{
 public function Star(radius:Number,color:uint=0xffff00):void {
 // constructor code
  graphics.lineStyle(0);
  graphics.moveTo(radius,0);
  graphics.beginFill(color);
   for(var i:int = 1;i<11;i++){
    var radius2:Number = radius;
    if(i%2>0){
     radius2 = radius/2;
     }
    var angle:Number =Math.PI*2/10*i;
    graphics.lineTo(Math.cos(angle)*radius2,Math.sin(angle)*radius2);
   }
 }
}
}
上就是绘制五角星的类,它是怎么绘制的,下面一步步讲解flash 程序绘制生成五角星。
网站制作学习网原创讲解,转载请注明。
我们倒叙解释五角星的构成
1.首先分析五角星的构造
五个外角 五个内角,能确定的是它是有十个角组成。
我们先看一下下面的十个角的图形怎么变成五角星。
 
看到完flash我们明白了,一个对称十角的图形,将间隔一半的角拉回去,即据角心减少二分之一,变成了五角星。
2.那么怎么绘制十角的图形呢。
假设一个圆,将其均分弧为10份,即圆上面有10个点,当将这10个点逐一链接,则就会出现了十边形。
如何绘制十边型。我们通过小学的角度分析即可。
假设有x轴 y轴,从x水平方向开始绘制,先将360度的圆分十份,即每份36度,也就是说第一个点我们从x轴y轴的坐标表示为
x1 = cos(36)*R(R即圆形边境)
y1 = sin(36)*R
依次类推,便会有 72度点 108度...一直到360度。但是怎么用flash表示出来呢。
flash中的Math.sin(Num)和Math.cos(Num);这里的Num是用弧度表示的。
那么我们平分弧度 弧长公式为 L = n* π* R *2/360 = n*πR/180;(其中n为弧对应圆心角度)
弧度则是当弧长等于半径时为1弧度。
弧度 Foraspcn= L/R = n*π/180; 则一个圆的弧度为 n = 360; Foraspcn = n*π/180*360 = 2*π;
现在得出类一个圆圈的弧度为2π,那么我们分10个点,然后就逐步加。
for(var i:int = 1;i<11;i++){
 var angle:Number =Math.PI*2/10*i;//这里就是将弧度分为10分然后逐个增加1分。
 graphics.lineTo(Math.cos(angle)*radius2,Math.sin(angle)*radius2);//这里就得到了圆的十个点。
}
3.那么我们再将间隔的5个点缩短二分之一
for(var i:int = 1;i<11;i++){
    var radius2:Number = radius;
    if(i%2>0){
     radius2 = radius/2;
     }
    var angle:Number =Math.PI*2/10*i;
    graphics.lineTo(Math.cos(angle)*radius2,Math.sin(angle)*radius2);
   }
这样我们的五角星就出来了,其他就是填充颜色等,我就不再说了。

原文章%77w%77%2Ef%6F%72%61%73%70%2E%63n

·上一篇:1046: 找不到类型,或者它不是编译时常数: TimerEvent >>    ·下一篇:flash设置对象深度 >>
推荐文章
最新文章