会跳舞的骨骼小人

2008-04-02 11:00:44来源:互联网 阅读 ()

新老客户大回馈,云服务器低至5折


  前不久,在一本讲Matlab的书上看到一个例子,用绘图函数画一个小人。

  效果如下:

  

  

  


  就像下面这样的:

  

  既然这个小人能够画出来,那么可否让他动呢,我想这个很显然是没有问题的,只要把的身体的各个组成部分分解开就能够了。

  组成这个小人的只有两种组件成分,一个是圆形,一个是线条.

  代码分别如下:

  

class skelectonCircle

  {

  private var x:Number=0;

  private var y:Number=0;

  private var r:Number=0;

  private var lineStyleNum:Number=0x3399FF;

  static private var mId:Number=0;

  private var mMcHolder:MovieClip;

  public function skelectonCircle(inX:Number,inY:Number,inR:Number,inStyle:Number)

  {

  init(inX,inY,inR,inStyle);

  }

  public function init(inX:Number,inY:Number,inR:Number,inStyle:Number):Void

  {

  reset(inX,inY,inR,inStyle);

  mMcHolder=_root.createEmptyMovieClip("__SKELETONC__" mId,_root.getNextHighestDepth());

  mId ;

  }

  public function reset(inX:Number,inY:Number,inR:Number,inStyle:Number):Void

  {

  x=inX;

  y=inY;

  r=inR;

  if(inStyle!=null||inStyle!=undefined)lineStyleNum=0x3399FF;

  else lineStyleNum=inStyle;

  }

  public function draw():Void

  {

  //draw a cicle:

  mMcHolder.lineStyle(1,lineStyleNum,100);

  //beginFill(0x6666FF);

  //move to the circle’s center.

  mMcHolder.moveTo(x r,y);

  var fi:Number=0;

  var cX:Number=0;

  var cY:Number=0;

  var detaFi:Number=0.1;

  while(fi<=2*Math.PI 0.2)

  {

  cX=x r*Math.cos(fi);

  cY=y r*Math.sin(fi);

  mMcHolder.lineTo(cX,cY);

  fi =detaFi;

  }

  //endFill();

  }

  public function clean():Void

  {

  mMcHolder.clear();

  }

  public function toString():String

  {

  var reString:String=new String();

  reString=String("x:" String(x) "y:" String(y) "r:" String(r) "\n");

  return reString;

  }

  public function finallize():Void

  {

  mMcHolder.removeMovieClip();

  mMcHolder=null;

  delete this;

  }

  }

  class skelectonLine

  {

  private var x1:Number=0;

  private var y1:Number=0;

  private var x2:Number=0;

  private var y2:Number=0;

  private var lineStyleNum:Number=0x3399FF;

  static private var mId:Number=0;

  private var mMcHolder:MovieClip;

  //static private var thisP:Object;

  public function skelectonCircle(inX1:Number,inY1:Number,inX2:Number,inY2:Number,inStyle:Number)

  {

  init(inX1,inY1,inX2,inY2,inStyle);

  }

  public function init(inX1:Number,inY1:Number,inX2:Number,inY2:Number,inStyle:Number):Void

  {

  reset(inX1,inY1,inX2,inY2,inStyle);

  mMcHolder=_root.createEmptyMovieClip("__SKELETONL__" mId,_root.getNextHighestDepth());

  mId ;

  //thisP=this;

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇: 创建图层和图层文档夹

下一篇: Flash中MP3导入及同步歌词的方法