AS画图篇(2)

action画羽毛 作者:东方暖阳

代码:

onMouseDown=init;
function init() {//创建羽毛,并设置羽毛各个参数及对函数的调用 
  feather = createEmptyMovieClip("f"+i, 10000+i++); 
  feather.swapDepths(Math.random()*10000); 
  feather._x = _xmouse; 
  feather._y = _ymouse; 
  feather._rotation = -90+Math.random()*40-20; 
  col = Math.random()*255 << 8; 
  radius = Math.random()*20+20; 
  twist = Math.random()+.5; 
  len = Math.random()*100+50; 
  taper = Math.random()*.05+.95; 
   x=0; 
  onEnterFrame=grow; 
} 
function grow() {//创建函数来定义羽毛的生长、定义羽毛的停止生长条件
  angle = Math.sin(fa += twist)*Math.PI/4; 
  feather.moveTo(x, y); 
  feather.lineStyle(1, col, 50); 
  feather.lineTo(x+Math.cos(angle)*radius, y+Math.sin(angle)*radius); 
  radius *= taper; 
  if (x++>len) { 
    delete onEnterFrame; 
  } 
};

用as画圆:

代码:

思路:用不间断的連线形成一个圆,实际上一个正360度多边形
应用:按此法可画任意的图形,如抛物线,螺旋线等,只需把方程修改即可,第2 个代码就是一个应用,画椭圆。

_root.onLoad = function() { 
  System.Usecodepage = true; 
  // 这句我也不知道什么意思,加了以后就支持中文了,是从“好笨”那里学来的,誰知道告诉我,谢谢 
  _root.createTextField("txtLoad", 151, 50, 280, 400, 30); 
  // 建 一文本,名、层次、x、y、宽度、高度 
  _root.txtLoad.text = "这是一个画线的应用。zjs35制作。zjs35@163.com"; 
  // 文本中的内容 
  daxiao = 100;//圆的半径 
  yuanxin_x = 200; 
  yuanxin_y = 150;//圆心的坐标 
}; 
_root.onEnterFrame = function() { 
  a = daxiao*Math.cos(n*Math.PI/180); 
  b = daxiao*Math.sin(n*Math.PI/180);//根据圆的方程定义一个起点 
  c = daxiao*Math.cos((n+1)*Math.PI/180); 
  d = daxiao*Math.sin((n+1)*Math.PI/180);//定义一个终点 
  createEmptyMovieClip("yuan", n); 
  with (yuan) { 
    lineStyle(2, 0x000000, 50);//定义线的样式 
    moveTo(a+yuanxin_x, b+yuanxin_y); 
    lineTo(c+yuanxin_x, d+yuanxin_y);//从起点到终点画线 
  } 
  if (n<=360) { 
    n = n+1; 
  }//控制画线的长度,刚好一个圆,1表示画线的速度 
};

画正多边形

代码:

这是一个画正多边形的程序,思路:把一个圆划分成n等分,把这些点連接起来 ,下面是按钮上代码,另外在场景中建两可输入文本框,名为aa,bb。

on (release) { 
  daxiao=aa; 
  //获取多边形的大小,以像素为单位 
  bianshu = bb; 
  // 获取边数,整数,从3开始,到无穷大,n多边形就是圆 
  jiaodu = 360/bianshu; 
  //得到每个等分的角度 
  for (n=1; n<=bianshu; n++) { 
    //for循环,由bianshu来控制循环的次数,也就是要画的多边形的边数 
    a = daxiao*math.cos(n*jiaodu*math.pi/180); 
    b = daxiao*math.sin(n*jiaodu*math.pi/180); 
    //定义起点的坐标 
    c = daxiao*math.cos((n+1)*jiaodu*math.pi/180); 
    d = daxiao*math.sin((n+1)*jiaodu*math.pi/180); 
    //定义终点的坐标 
    createEmptyMovieClip("xian", n); 
    // 创建一个空影片xian,n为层次 
  with (xian) { 
    lineStyle(2, 0xff0000, 100); 
    // 定义线的大小、颜色、透明度 
    moveTo(a+300, b+200); 
    lineTo(c+300, d+200);//从起点到终点画线 
    } 
  } 
}

用as画字母F 作者:寒蓝

代码:

// 创建一个空的mc: 
_root.createEmptyMovieClip("myMc", 0); 
// 定义mc的位置: 
myMc._x = 100; 
myMc._y = 50; 
// 定义填充: 
myMc.beginFill(0xff0000, 100); 
colors = [0xFF0000, 0xffffff]; 
alphas = [100, 100]; 
ratios = [0, 0xFF]; 
matrix = {a:50, b:0, c:0, d:0, e:50, f:0, g:50, h:50, i:1}; 
myMc.beginGradientFill("linear", colors, alphas, ratios, matrix); 
// 定义画线的样式: 
myMc.lineStyle(1, 0xff0000, 100); 
// 移动初始点: 
myMc.moveTo(100, 0); 
// 连接曲线: 
myMc.curveTo(65, 5, 50, 50); 
myMc.curveTo(35, 95, 0, 100); 
// 连接直线 
myMc.lineTo(0, 120); 
myMc.curveTo(45, 110, 62, 70); 
myMc.lineTo(90, 70); 
myMc.lineTo(90, 50); 
myMc.lineTo(70, 50); 
myMc.curveTo(80, 20, 100, 20); 
myMc.lineTo(100, 0); 
// 结束填充: 
myMc.endFill(); 
// 清除所画: 
// myMc.clear();

画正弦线

代码:

root.onLoad = function() { 
  daxiao = 100; 
  yuanxin_x = 00; 
  yuanxin_y = 150; 
}; 
_root.onEnterFrame = function() { 
  a = daxiao*Math.sin(n*Math.PI/180); 
  c = daxiao*Math.sin((n+1)*Math.PI/180); 
  createEmptyMovieClip("xian", n); 
  with (xian) { 
    lineStyle(1, 0x339900, 50); 
    moveTo(n+yuanxin_x, a+yuanxin_y); 
    lineTo(n+1+yuanxin_x, c+yuanxin_y); 
  } 
   if (n<=400) { 
       n = n+1/2; 
  } 
}

画余弦线

代码:

_root.onLoad = function() { 
  daxiao = 100;
  yuanxin_x = 00; 
  yuanxin_y = 150; 
}; 
_root.onEnterFrame = function() { 
  a = daxiao*Math.cos(n*Math.PI/180); 
  c = daxiao*Math.cos((n+1)*Math.PI/180); 
  createEmptyMovieClip("yuan", n); 
  with (yuan) { 
    lineStyle(1, 0x000000, 50); 
    moveTo(n+yuanxin_x, a+yuanxin_y); 
    lineTo(n+1+yuanxin_x, c+yuanxin_y); 
    } 
    if (n<=400) { 
      n = n+1/2; 
  } 
};

画心脏线

代码:

这是一个用MX新增功能画线的例子,比在5中用点复制法画线简单多了,用此方法,可动态画数学中所有的图形。

_root.onLoad = function() { 
  daxiao = 40; 
  // 设定心脏线的大小 
}; 
_root.onEnterFrame = function() { 
  a = daxiao*(2*Math.cos(n*Math.PI/180)+Math.cos(2*(n*Math.PI/180))); 
  // 通过心脏线的方程定义起点的x坐标 
  b = daxiao*(2*Math.sin(n*Math.PI/180)+Math.sin(2*(n*Math.PI/180))); 
  // 通过心脏线的方程定义起点的y坐标 
  c = daxiao*(2*Math.cos((n+1)*Math.PI/180)+Math.cos(2*((1+n)*Math.PI/180))); 
  d = daxiao*(2*Math.sin((n+1)*Math.PI/180)+Math.sin(2*((1+n)*Math.PI/180))); 
  // 同理定义终点的经x,y坐标 
  createEmptyMovieClip("yuan", n); 
  // 创建一个空影片yuan 
  with (yuan) { 
    lineStyle(0.5, 0x000000, 100); 
    // 定义线的大小、颜色、透明度 
    moveTo(a+200, b+150); 
    lineTo(c+200, d+150); 
    // 从起点到终点画一条线,并把图形的中心点定为(200,150) 
    } 
    if (n<=360) { 
      n = n+1; 
  } 
}; 

画螺旋线

代码:

_root.onEnterFrame = function() { 
  a = (10+0.1*n)*Math.cos(n*Math.PI/180); 
  b = (10+0.1*n)*Math.sin(n*Math.PI/180); 
  c = (10+0.1*n)*Math.cos((n+1)*Math.PI/180); 
  d = (10+0.1*n)*Math.sin((n+1)*Math.PI/180); 
  createEmptyMovieClip("yuan", n); 
  with (yuan) { 
    lineStyle(2, 0x000000, 50); 
    moveTo(a+200, b+150); 
    lineTo(c+200, d+150); 
    } 
    if (n<=900) { 
      n = n+1; 
  } 
}; 

旋转的长方体

代码:

a = 50*Math.cos(n*Math.PI/180); 
b = 100*Math.sin(n*Math.PI/180); 
c1 = 300; 
c2 = 200; 
_root.createEmptyMovieClip("triangle", 1); 
with (_root.triangle) { 
  lineStyle(1, 0x000000, 50); 
  moveTo(a+c1, b+c2); 
  lineTo(50*math.cos((n+90)*math.pi/180)+c1,100*math.sin((n+90)*math.pi/180)+c2); 
  lineTo(50*math.cos((n+180)*math.pi/180)+c1,100*math.sin((n+180)*math.pi/180)+c2); 
  lineTo(50*math.cos((n+270)*math.pi/180)+c1,100*math.sin((n+270)*math.pi/180)+c2); 
  lineTo(50*math.cos((n+360)*math.pi/180)+c1,100*math.sin((n+360)*math.pi/180)+200); 
  lineStyle(1, 0x000000, 50); 
  moveTo(a+200, b+100); 
  lineTo(50*math.cos((n+90)*math.pi/180)+200,100*math.sin((n+90)*math.pi/180)+100); 
  lineTo(50*math.cos((n+180)*math.pi/180)+200,100*math.sin((n+180)*math.pi/180)+100); 
  lineTo(50*math.cos((n+270)*math.pi/180)+200,100*math.sin((n+270)*math.pi/180)+100); 
  lineTo(50*math.cos((n+360)*math.pi/180)+200,100*math.sin((n+360)*math.pi/180)+100); 
  lineStyle(1, 0x000000, 30); 
  moveTo(a+200, b+100); 
  lineTo(a+c1, b+c2); 
  moveTo(50*math.cos((n+90)*math.pi/180)+c1,100*math.sin((n+90)*math.pi/180)+c2); 
  lineTo(50*math.cos((n+90)*math.pi/180)+200,100*math.sin((n+90)*math.pi/180)+100); 
  moveTo(50*math.cos((n+180)*math.pi/180)+c1,100*math.sin((n+180)*math.pi/180)+c2); 
  lineTo(50*math.cos((n+180)*math.pi/180)+200,100*math.sin((n+180)*math.pi/180)+100); 
  moveTo(50*math.cos((n+270)*math.pi/180)+c1,100*math.sin((n+270)*math.pi/180)+c2); 
  lineTo(50*math.cos((n+270)*math.pi/180)+200,100*math.sin((n+270)*math.pi/180)+100); 
}

用as做烛光,相当逼真。

代码:

offsetX = 275;
offsetY = 100;
left = 0;
right = 0;
top = 0;
leftGoal = 0;
rightGoal = 0;
topGoal = 0;
rate = .2;
decay = .9;
for (var i = 0; i<shapes.length; i++) {
  var name = "flame"+i;
  createEmptyMovieClip(name, i);
  _root[name]._x = offsetX;
  _root[name]._y = offsetY;
  _root[name].offset = parseInt(shapes[i].split("|")[0]);
  _root[name].fade = parseInt(shapes[i].split("|")[1]);
}
createEmptyMovieClip("heat", i);
heat._x = offsetX;
heat._y = offsetY;
checkEdge = function (cur, side, dist) { 
  change = 0;if (cur>side) {
    change -= Math.random()*dist;
    } else if (cur<-side) {
      change += Math.random()*dist;
    }
return change;
};
onEnterFrame = function () {
  leftGoal += Math.random()*6-3;
  leftGoal += checkEdge(leftGoal,10, 3);
  rightGoal += Math.random()*6-3;
  rightGoal += checkEdge(rightGoal, 10,3);
  topGoal += Math.random()*8-4;
  topGoal += checkEdge(topGoal, 15, 4);
  leftAccel = (leftGoal-left)*rate;
  leftVeloc += leftAccel;
  leftVeloc *= decay;
  left += leftVeloc;
  rightAccel = (rightGoal-right)*rate;
  rightVeloc += rightAccel;
  rightVeloc *= decay;right += rightVeloc;
  topAccel = (topGoal-top)*rate;
  topVeloc += topAccel;
  topVeloc *= decay;top += topVeloc;
  for (var i = 0; i<shapes.length; i++) {
    with (_root["flame"+i]) {
      clear();colors = [0xFCE39C, 0xF4AC35];
      alphas = [_root["flame"+i].fade, _root["flame"+i].fade-20];
      ratios = [70, 255];
      matrix = {matrixType:"box", x:-50, y:50, w:100, h:200, r:0};
      beginGradientFill("radial",colors, alphas, ratios, matrix);
      lineStyle(1, 0x000000, 0);
      moveTo(0-left+right,0-top-_root["flame"+i].offset*2);
      curveTo(40+_root["flame"+i].offset+right, 180,0, 200);
      curveTo(-40-_root["flame"+i].offset-left, 180, 0-left+right, 0-top-_root["flame"+i].offset*2);
      endFill();
    }
  } with (_root.heat) {
    clear();colors = [0x986932, 0x986932];
    alphas = [70, 0];
    ratios = [20, 255];
    matrix = {matrixType:"box", x:-20-left/2, y:120-top, w:40+right/2,h:120+top, r:0
};
  beginGradientFill("radial", colors, alphas, ratios, matrix);
  lineStyle(1,0x000000, 0);
  moveTo(-50, 0);
  lineTo(50, 0);
 lineTo(50, 200);
  lineTo(-50, 200);
  lineTo(-50,0);
  endFill();
}
duplicateMovieClip(_root["flame"+(shapes.length-1)], "shapeMask",shapes.length+1);
heat.setMask(shapeMask);
};

十四面体代码:

_root.onLoad = function() {
  c1 = 200;
  c2 = 250;
  c3 = 50;
  c4 = 10;
};
_root.onEnterFrame = function() {
  aa = 100;
  bb = 100;
  // 控制横向
  cc = _root.right_s3.getvalue();
  dd = _root.right_s4.getvalue();
  ee = _root.right_s5.getvalue();
  ff = _root.right_s6.getvalue();
  gg = _root.right_s7.getvalue();
  daxiao1 = aa;
  daxiao2 = bb;
  sutu = cc;
  zhox = ee;
  bianshu1 = dd;
  // 控制速度和方向
  _root.createEmptyMovieClip("triangle", 1);
  lineStyle(0, 0x000000, 100);
  with (_root.triangle) {
    // 画虚线
    a1 = daxiao2*math.sin((n+1*60)*math.pi/180);
    b1 = daxiao1*math.cos((n+1*60)*math.pi/180);
    a2 = daxiao2*math.sin((n+(i+1)*60)*math.pi/180);
    b2 = daxiao1*math.cos((n+(i+1)*60)*math.pi/180);
    lineStyle(1, 0xff0000,100);
    // 中面的6个点
    moveTo(daxiao2*math.sin((n+1*60)*math.pi/180)+c1,daxiao1*math.cos((n+1*60)*math.pi/180)+c2-gg-c3);
    lineTo(daxiao2*math.sin((n+6*60)*math.pi/180)+c1,daxiao1*math.cos((n+6*60)*math.pi/180)+c2-gg-c3);
    moveTo(daxiao2*math.sin((n+3*60)*math.pi/180)+c1,daxiao1*math.cos((n+3*60)*math.pi/180)+c2-gg-c3);
    lineTo(daxiao2*math.sin((n+2*60)*math.pi/180)+c1,daxiao1*math.cos((n+2*60)*math.pi/180)+c2-gg-c3);
    moveTo(daxiao2*math.sin((n+5*60)*math.pi/180)+c1,daxiao1*math.cos((n+5*60)*math.pi/180)+c2-gg-c3);
    lineTo(daxiao2*math.sin((n+4*60)*math.pi/180)+c1,daxiao1*math.cos((n+4*60)*math.pi/180)+c2-gg-c3);
    // 连上下的12个点
    moveTo(daxiao2*math.sin((n+1*60)*math.pi/180)+c1,daxiao1*math.cos((n+1*60)*math.pi/180)+c2-gg);
    lineTo(daxiao2*math.sin((n+2*60)*math.pi/180)+c1,daxiao1*math.cos((n+2*60)*math.pi/180)+c2-gg);
    moveTo(daxiao2*math.sin((n+3*60)*math.pi/180)+c1,daxiao1*math.cos((n+3*60)*math.pi/180)+c2-gg);
    lineTo(daxiao2*math.sin((n+4*60)*math.pi/180)+c1,daxiao1*math.cos((n+4*60)*math.pi/180)+c2-gg);
    moveTo(daxiao2*math.sin((n+5*60)*math.pi/180)+c1,daxiao1*math.cos((n+5*60)*math.pi/180)+c2-gg);
    lineTo(daxiao2*math.sin((n+6*60)*math.pi/180)+c1,daxiao1*math.cos((n+6*60)*math.pi/180)+c2-gg);
    // 中面的6个点,但连线不一样,注意
     moveTo(daxiao2*math.sin((n+1*60)*math.pi/180)+c1,daxiao1*math.cos((n+1*60)*math.pi/180)+c2-gg);
    lineTo(daxiao2*math.sin((n+1*60)*math.pi/180)+c1,daxiao1*math.cos((n+1*60)*math.pi/180)+c2-gg-c3);
    moveTo(daxiao2*math.sin((n+2*60)*math.pi/180)+c1,daxiao1*math.cos((n+2*60)*math.pi/180)+c2-gg);
    lineTo(daxiao2*math.sin((n+2*60)*math.pi/180)+c1,daxiao1*math.cos((n+2*60)*math.pi/180)+c2-gg-c3);
    moveTo(daxiao2*math.sin((n+3*60)*math.pi/180)+c1,daxiao1*math.cos((n+3*60)*math.pi/180)+c2-gg);
    lineTo(daxiao2*math.sin((n+3*60)*math.pi/180)+c1,daxiao1*math.cos((n+3*60)*math.pi/180)+c2-gg-c3);
    moveTo(daxiao2*math.sin((n+4*60)*math.pi/180)+c1,daxiao1*math.cos((n+4*60)*math.pi/180)+c2-gg);
    lineTo(daxiao2*math.sin((n+4*60)*math.pi/180)+c1,daxiao1*math.cos((n+4*60)*math.pi/180)+c2-gg-c3);
    moveTo(daxiao2*math.sin((n+5*60)*math.pi/180)+c1,daxiao1*math.cos((n+5*60)*math.pi/180)+c2-gg);
    lineTo(daxiao2*math.sin((n+5*60)*math.pi/180)+c1,daxiao1*math.cos((n+5*60)*math.pi/180)+c2-gg-c3);
    moveTo(daxiao2*math.sin((n+6*60)*math.pi/180)+c1,daxiao1*math.cos((n+6*60)*math.pi/180)+c2-gg);
    lineTo(daxiao2*math.sin((n+6*60)*math.pi/180)+c1,daxiao1*math.cos((n+6*60)*math.pi/180)+c2-gg-c3);
    //取下面的顶点,及3个点并连线
	lineStyle(1, 0x336600, 60);
	moveTo(c1, c2-gg-c3-c3+150+c3);
	lineTo((daxiao2-c4)*math.sin((n+5*30)*math.pi/180)+c1,daxiao1
*math.cos((n+5*30)*math.pi/180)+c2-gg-c3-c3+150);
    moveTo(c1, c2-gg-c3-c3+150+c3);
	lineTo((daxiao2-c4)*math.sin((n+9*30)*math.pi/180)+c1,daxiao1
*math.cos((n+9*30)*math.pi/180)+c2-gg-c3-c3+150);
    moveTo(c1, c2-gg-c3-c3+150+c3);
	lineTo((daxiao2-c4)*math.sin((n+1*30)*math.pi/180)+c1,daxiao1
*math.cos((n+1*30)*math.pi/180)+c2-gg-c3-c3+150);
    // 下面3、6个点连接
	moveTo((daxiao2-c4)*math.sin((n+5*30)*math.pi/180)+c1,daxiao1
*math.cos((n+5*30)*math.pi/180)+c2-gg-c3-c3+150);
    lineTo(daxiao2*math.sin((n+2*60)*math.pi/180)+c1,daxiao1
*math.cos((n+2*60)*math.pi/180)+c2-gg);
    moveTo((daxiao2-c4)*math.sin((n+5*30)*math.pi/180)+c1,daxiao1
*math.cos((n+5*30)*math.pi/180)+c2-gg-c3-c3+150);
    lineTo(daxiao2*math.sin((n+3*60)*math.pi/180)+c1,daxiao1
*math.cos((n+3*60)*math.pi/180)+c2-gg);
    moveTo((daxiao2-c4)*math.sin((n+9*30)*math.pi/180)+c1,daxiao1
*math.cos((n+9*30)*math.pi/180)+c2-gg-c3-c3+150);
    lineTo(daxiao2*math.sin((n+4*60)*math.pi/180)+c1,daxiao1*math.cos((n+4*60)*math.pi/180)+c2-gg);
	moveTo((daxiao2-c4)*math.sin((n+9*30)*math.pi/180)+c1,daxiao1
*math.cos((n+9*30)*math.pi/180)+c2-gg-c3-c3+150);
    lineTo(daxiao2*math.sin((n+5*60)*math.pi/180)+c1,daxiao1*math.cos((n+5*60)*math.pi/180)+c2-gg);
	    moveTo((daxiao2-c4)*math.sin((n+1*30)*math.pi/180)+c1,daxiao1
*math.cos((n+1*30)*math.pi/180)+c2-gg-c3-c3+150);
    lineTo(daxiao2*math.sin((n+1*60)*math.pi/180)+c1,daxiao1*math.cos((n+1*60)*math.pi/180)+c2-gg);
	    moveTo((daxiao2-c4)*math.sin((n+1*30)*math.pi/180)+c1,daxiao1
*math.cos((n+1*30)*math.pi/180)+c2-gg-c3-c3+150);
    lineTo(daxiao2*math.sin((n+6*60)*math.pi/180)+c1,daxiao1*math.cos((n+6*60)*math.pi/180)+c2-gg);
	    // 取上面的顶点,并连线
		moveTo(c1, c2-gg-c3-c3-c3);
		lineTo((daxiao2-c4)*math.sin((n+210)*math.pi/180)+c1,(daxiao1)
*math.cos((n+210)*math.pi/180)+c2-gg-c3-c3);
        moveTo(c1, c2-gg-c3-c3-c3);
		lineTo((daxiao2-c4)*math.sin((n+330)*math.pi/180)+c1,(daxiao1)
*math.cos((n+330)*math.pi/180)+c2-gg-c3-c3);
    moveTo(c1, c2-gg-c3-c3-c3);
	lineTo((daxiao2-c4)*math.sin((n+1*90)*math.pi/180)+c1,(daxiao1)
*math.cos((n+1*90)*math.pi/180)+c2-gg-c3-c3);
   // 中上面的6个点,但连线不一样,注意
   moveTo(daxiao2*math.sin((n+1*60)*math.pi/180)+c1,daxiao1
*math.cos((n+1*60)*math.pi/180)+c2-gg-c3);
    lineTo(daxiao2*math.sin((n+6*60)*math.pi/180)+c1,daxiao1
*math.cos((n+6*60)*math.pi/180)+c2-gg-c3);
    moveTo(daxiao2*math.sin((n+3*60)*math.pi/180)+c1,daxiao1
*math.cos((n+3*60)*math.pi/180)+c2-gg-c3);
    lineTo(daxiao2*math.sin((n+2*60)*math.pi/180)+c1,daxiao1
*math.cos((n+2*60)*math.pi/180)+c2-gg-c3);
    moveTo(daxiao2*math.sin((n+5*60)*math.pi/180)+c1,daxiao1
*math.cos((n+5*60)*math.pi/180)+c2-gg-c3);
    lineTo(daxiao2*math.sin((n+4*60)*math.pi/180)+c1,daxiao1
*math.cos((n+4*60)*math.pi/180)+c2-gg-c3);
    // 上面3、6个点连接
	moveTo((daxiao2-c4)*math.sin((n+90)*math.pi/180)+c1,(daxiao1)
*math.cos((n+90)*math.pi/180)+c2-gg-c3-c3);
    lineTo(daxiao2*math.sin((n+1*60)*math.pi/180)+c1,daxiao1
*math.cos((n+1*60)*math.pi/180)+c2-gg-c3);
    moveTo((daxiao2-c4)*math.sin((n+90)*math.pi/180)+c1,(daxiao1)
*math.cos((n+90)*math.pi/180)+c2-gg-c3-c3);
    lineTo(daxiao2*math.sin((n+2*60)*math.pi/180)+c1,daxiao1
*math.cos((n+2*60)*math.pi/180)+c2-gg-c3);
    moveTo((daxiao2-c4)*math.sin((n+210)*math.pi/180)+c1,(daxiao1)
*math.cos((n+210)*math.pi/180)+c2-gg-c3-c3);
    lineTo(daxiao2*math.sin((n+3*60)*math.pi/180)+c1,daxiao1
*math.cos((n+3*60)*math.pi/180)+c2-gg-c3);
    moveTo((daxiao2-c4)*math.sin((n+210)*math.pi/180)+c1,(daxiao1)
*math.cos((n+210)*math.pi/180)+c2-gg-c3-c3);
    lineTo(daxiao2*math.sin((n+4*60)*math.pi/180)+c1,daxiao1
*math.cos((n+4*60)*math.pi/180)+c2-gg-c3);
    moveTo((daxiao2-c4)*math.sin((n+330)*math.pi/180)+c1,(daxiao1)
*math.cos((n+330)*math.pi/180)+c2-gg-c3-c3);
    lineTo(daxiao2*math.sin((n+5*60)*math.pi/180)+c1,daxiao1
*math.cos((n+5*60)*math.pi/180)+c2-gg-c3);
    moveTo((daxiao2-c4)*math.sin((n+330)*math.pi/180)+c1,(daxiao1)
*math.cos((n+330)*math.pi/180)+c2-gg-c3-c3);
     lineTo(daxiao2*math.sin((n+6*60)*math.pi/180)+c1,daxiao1*math.cos((n+6*60)*math.pi/180)+c2-gg-c3);
  }
  n = n+sutu;
}

转载于:https://www.cnblogs.com/savageworld/archive/2006/07/20/455893.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
PySimpleGUI 是一款基于 Python 的 GUI 框架,而 matplotlib 则是一个强大的 Python 画图库。这文章将介绍如何在 PySimpleGUI 中集成 matplotlib 画图。 步骤一:安装依赖库 首先需要安装 PySimpleGUI 和 matplotlib 两个库,可以使用以下命令进行安装: ```python pip install PySimpleGUI pip install matplotlib ``` 步骤二:创建 PySimpleGUI 窗口 接下来需要创建一个 PySimpleGUI 窗口,用于显示 matplotlib 画出的图形。可以使用以下代码创建一个简单的窗口: ```python import PySimpleGUI as sg sg.theme('Dark Blue 3') layout = [[sg.Graph((500, 500), (0, 0), (500, 500), key='graph')]] window = sg.Window('Matplotlib Integration', layout, resizable=True, finalize=True) graph = window['graph'] ``` 这个窗口只包含一个 Graph 对象,用于显示 matplotlib 画出的图形。 步骤三:使用 matplotlib 画图 接下来需要使用 matplotlib 画图。在 PySimpleGUI 中集成 matplotlib 最简单的方法是使用 FigureCanvasTkAgg 类。以下是一个简单的例子,用于在 PySimpleGUI 窗口中显示一条直线: ```python import matplotlib.pyplot as plt from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg fig, ax = plt.subplots() ax.plot([0, 1, 2, 3], [0, 1, 4, 9]) canvas = FigureCanvasTkAgg(fig, graph.TKCanvas) canvas.draw() canvas.get_tk_widget().pack(side='top', fill='both', expand=1) ``` 这段代码首先创建了一个 Figure 对象和一个 Axes 对象,然后使用 plot 方法画了一条直线。接着,创建了一个 FigureCanvasTkAgg 对象,它可以将 matplotlib 的图形绘制在 PySimpleGUI 窗口中的 Graph 对象上。最后,调用 draw 方法将图形绘制到 FigureCanvasTkAgg 对象上,并将它添加到 Graph 对象中。 步骤四:运行程序 最后,需要使用 PySimpleGUI 的事件循环处理器运行程序,以便可以响应用户的操作。以下是一个简单的例子: ```python while True: event, values = window.read() if event == sg.WIN_CLOSED: break window.close() ``` 这个程序会一直循环,直到用户关闭窗口。在每次循环中,它调用 read 方法来等待用户的操作。如果用户关闭了窗口,程序会退出循环,并调用 close 方法关闭窗口。 完整代码: ```python import PySimpleGUI as sg import matplotlib.pyplot as plt from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg sg.theme('Dark Blue 3') layout = [[sg.Graph((500, 500), (0, 0), (500, 500), key='graph')]] window = sg.Window('Matplotlib Integration', layout, resizable=True, finalize=True) graph = window['graph'] fig, ax = plt.subplots() ax.plot([0, 1, 2, 3], [0, 1, 4, 9]) canvas = FigureCanvasTkAgg(fig, graph.TKCanvas) canvas.draw() canvas.get_tk_widget().pack(side='top', fill='both', expand=1) while True: event, values = window.read() if event == sg.WIN_CLOSED: break window.close() ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值