绘制数学图形

      勤学苑 2006-7-1 18:50

Flash 动画


主场景:
line_btn.onRelease = function() {
  attachMovie("line_mc", line1, 1, {_x:220, _y:200});
};
circle_btn.onRelease = function() {
  attachMovie("circle_mc", circle, 1, {_x:220, _y:200});
};
ellipse_btn.onRelease = function() {
  attachMovie("ellipse_mc", ellipse, 1, {_x:220, _y:200});
};
polygon_btn.onRelease = function() {
  attachMovie("polygon_mc", polygon, 1, {_x:220, _y:200});
};

//绘制斜线 y=ax+b
//x 变量
var parVar:Number = 0;
//给定两个常量
//斜率,1为45度延长,正负能决定在一、四象限绘制
var a:Number = 1;
//在y轴上的起点
var b:Number = 0;
//设置按钮状态切换,初始为绘制
SetButtons();
//===============按钮语句
//绘制按钮
btnA.onRelease = function() {
  //变量初始值
  parVar = 0;
  //线条样式(宽度,颜色)
  lineStyle(2, 0xFF0000);
  //绘制线条的起点
  moveTo(parVar, -(a*parVar+b));
  //按钮状态转换为清除
  SetButtons();
};
//清除按钮
btnB.onRelease = function() {
  //清除所画线条
  clear();
  //按钮状态转换为绘制
  SetButtons();
};
//================功能语句
//以帧频调用绘制线条语句
onEnterFrame = DrawLine;
//动态绘制线条
function DrawLine() {
  if (parVar<120) {
    //终点横坐标
    var pX = parVar;
    //终点纵坐标,正负能决定在一、四象限绘制
    var pY = -(a*pX+b);
    //绘制线条的终点
    lineTo(pX, pY);
    //横坐标以4像素的速度增加
    parVar += 4;
  }
}
//按钮状态转换
function SetButtons() {
  //初始为不可见,按下取反,可见
  btnB._visible = !btnB._visible;
  //初始为可见,按下取反,不可见
  btnA._visible = !btnB._visible;
}

//绘制圆  x = R * cos(p) y = R * sin(p)
//变量 弧度
var parVar:Number = 0;
//以下为三个常量
//圆周率
var pi:Number = Math.PI;
//圆的半径,为正时从右边开始画圆,为负时从左边开始画圆
var R:Number = -50;
//圆心位置,为0时,为原点,正向右下移动,负向左上移动
var L:Number = 0;
//设置按钮状态切换,初始为绘制
SetButtons();
//===============按钮语句
//绘制按钮
btnA.onRelease = function() {
  //变量初始值
  parVar = 0;
  //线条样式(宽度,颜色)
  lineStyle(2, 0xFF0000);
  //绘制线条的起点
  moveTo(R+L, L);
  //按钮状态转换为清除
  SetButtons();
};
//清除按钮
btnB.onRelease = function() {
  //清除所画线条
  clear();
  //按钮状态转换为绘制
  SetButtons();
};
//================功能语句
//以帧频调用绘制线条语句
onEnterFrame = DrawLine;
//动态绘制线条
function DrawLine() {
  if (parVar<2*pi) {
    //弧度以0.2的速度增加,越大越快
    parVar += 0.2;
    //终点横坐标
    var pX = R*Math.cos(parVar);
    //终点纵坐标
    var pY = R*Math.sin(parVar);
    //绘制线条的终点
    lineTo(L+pX, L+pY);
  }
}
//按钮状态转换
function SetButtons() {
  //初始为不可见,按下取反,可见
  btnB._visible = !btnB._visible;
  //初始为可见,按下取反,不可见
  btnA._visible = !btnB._visible;
}

标签集:TAGS:
回复Comments() 点击Count()

回复Comments

{commenttime}{commentauthor}

{CommentUrl}
{commentcontent}