分享
 
 
 

用FlashAS实现画图的详细讲解

王朝other·作者佚名  2008-05-19
窄屏简体版  字體: |||超大  

用Action Script进行控制,可以随机画出各种图形,该教程为系列讲座,提供了许多很有用的AS代码……

使用方法:把代码拷到帧中就可看到效果

用鼠标任意画线

效果:可按住鼠标任意画线,可作简单的涂鸭工具

代码:createEmptyMovieClip("xian",1);

with (xian) {

_root.onMouseMove = function() {

if (draw) {

_root.lineStyle(0,0x000000, 100);

_root.lineTo(_root._xmouse,_root._ymouse);

}

};

_root.onMouseDown = function() {

draw = true;

_root.moveTo(_root._xmouse,_root._ymouse);

};

_root.onMouseUp = function() {

draw = false;

};

}

用鼠标任意画直线

效果:类似flash中的直线工具

代码: createEmptyMovieClip("line", n);

with (line) {

lineStyle(1, 0x000000, 100);

moveTo(0, 0);

lineTo(100, 100);

line._visible = 0;

}

_root.onMouseDown = function() {

qidian_x = _root._xmouse;

qidian_y = _root._ymouse;

with (line) {

_x = qidian_x;

_y = qidian_y;

_xscale = 0;

_yscale = 0;

_visible = 1;

}

};

_root.onMouseMove = function() {

endX = _root._xmouse;

endY = _root._ymouse;

if (_root.line != "_root.line" && key.isdown(16)){

if (Math.abs(endX-qidian_x)>Math.abs(endY-qidian_y)){

setProperty(_root.line,_xscale, endX-qidian_x);

setProperty(_root.line,_yscale, endX-qidian_x);

} else {

setProperty(_root.line,_xscale, endY-qidian_y);

setProperty(_root.line,_yscale, endY-qidian_y);

}

} else {

setProperty(_root.line, _xscale,endX-qidian_x);

setProperty(_root.line, _yscale,endY-qidian_y);

}

};

_root.onMouseUp = function() {

if (_root._xmouse-qidian_x != 0) {

i++;

Objectx = "Copy" add i;

duplicateMovieClip(_root.line,Objectx, i);

setProperty(Objectx, _x, qidian_x);

setProperty(Objectx, _y, qidian_y);

_root.i = i;

}

setProperty(_root.line, _visible, 0);

};

用鼠标任意画矩形

效果:类似flash中的矩形工具

代码: createEmptyMovieClip("line", n);

with (line) {

lineStyle(0.1, 0x000000, 100);

moveTo(0, 0);

lineTo(100, 0);

lineTo(100, 100);

lineTo(0, 100);

lineTo(0,0);

line._visible = 0;

}

_root.onMouseDown = function() {

qidian_x = _root._xmouse;

qidian_y = _root._ymouse;

with (line) {

_x = qidian_x;

_y = qidian_y;

_xscale = 0;

_yscale = 0;

_visible = 1;

}

};

_root.onMouseMove = function() {

endX = _root._xmouse;

endY = _root._ymouse;

if (_root.line != "_root.line" && key.isdown(16)){

if (Math.abs(endX-qidian_x)>Math.abs(endY-qidian_y)){

setProperty(_root.line,_xscale, endX-qidian_x);

setProperty(_root.line,_yscale, endX-qidian_x);

} else {

setProperty(_root.line,_xscale, endY-qidian_y);

setProperty(_root.line,_yscale, endY-qidian_y);

}

} else {

setProperty(_root.line, _xscale,endX-qidian_x);

setProperty(_root.line, _yscale,endY-qidian_y);

}

};

_root.onMouseUp = function() {

if (_root._xmouse-qidian_x != 0) {

i++;

Objectx = "Copy" add i;

duplicateMovieClip(_root.line,Objectx, i);

setProperty(Objectx, _x, qidian_x);

setProperty(Objectx, _y, qidian_y);

_root.i = i;

}

setProperty(_root.line, _visible, 0);

};

用鼠标任意画圆、椭圆

效果:类似flash中的工具

代码:createEmptyMovieClip("line", n);

with (line) {

for (n=1; n<400; n++) {

a = 50*Math.cos(n*Math.PI/180);

b = 50*Math.sin(n*Math.PI/180);

c = 50*Math.cos((n+1)*Math.PI/180);

d = 50*Math.sin((n+1)*Math.PI/180);

lineStyle(0.01, 0x000000, 50);

moveTo(a+50, b+50);

lineTo(c+50, d+50);

}

line._visible = 0;

}

_root.onMouseDown = function() {

qidian_x = _root._xmouse;

qidian_y = _root._ymouse;

with (line) {

_x = qidian_x;

_y = qidian_y;

_xscale = 0;

_yscale = 0;

_visible = 1;

}

};

_root.onMouseMove = function() {

endX = _root._xmouse;

endY = _root._ymouse;

if (_root.line != "_root.line" && key.isdown(16)){

if (Math.abs(endX-qidian_x)>Math.abs(endY-qidian_y)){

setProperty(_root.line,_xscale, endX-qidian_x);

setProperty(_root.line,_yscale, endX-qidian_x);

} else {

setProperty(_root.line,_xscale, endY-qidian_y);

setProperty(_root.line,_yscale, endY-qidian_y);

}

} else {

setProperty(_root.line, _xscale,endX-qidian_x);

setProperty(_root.line, _yscale,endY-qidian_y);

}

};

_root.onMouseUp = function() {

if (_root._xmouse-qidian_x != 0) {

i++;

Objectx = "Copy" add i;

duplicateMovieClip(_root.line,Objectx, i);

setProperty(Objectx, _x, qidian_x);

setProperty(Objectx, _y, qidian_y);

_root.i = i;

}

setProperty(_root.line, _visible, 0);

};

两定点画虚线

代码:MovieClip.

prototype.dashTo = function(startPoint,

destPoint, dashLength, spaceLength) {

var x = destPoint.x-startPoint.x;

var y = destPoint.y-startPoint.y;

var hyp = Math.sqrt((x)*(x)+(y)*(y));

var units = hyp/(dashLength+spaceLength);

var dashSpaceRatio = dashLength/

(dashLength+spaceLength);

var dashX = (x/units)*dashSpaceRatio;

var spaceX = (x/units)-dashX;

var dashY = (y/units)*dashSpaceRatio;

var spaceY = (y/units)-dashY;

this.moveTo(startPoint.x, startPoint.y);

while (hyp>0) {

startPoint.x += dashX;

startPoint.y += dashY;

hyp -= dashLength;

if (hyp<0) {

startPoint.x = destPoint.x;

startPoint.y = destPoint.y;

}

this.lineTo(startPoint.x,startPoint.y);

startPoint.x += spaceX;

startPoint.y += spaceY;

this.moveTo(startPoint.x,startPoint.y);

hyp -= spaceLength;

}

this.moveTo(destPoint.x, destPoint.y);

};

createEmptyMovieClip("DrawingSpace", 1);

with (DrawingSpace) {

lineStyle(0, 0x000000, 100);

dashTo({x:300, y:0}, {x:0, y:400}, 3, 10);

}

从一点到另一点画虚线

代码:function DrawDottedLine(targetMC,

linewidth, fromX, fromY, toX, toY) {

// targetMC: 目标MovieClip德InstanceName;

// linewidth: 线宽;

// fromX, fromY: 从(fromX, fromY)处开始画;

// toX, toY: 画到(toX, toY)处;

var x, y;

eval(targetMC).lineStyle(lineWidth, 0x000000, 100);

// 线的颜色是黑色(0x000000)

eval(targetMC).moveTo(fromX, fromY);

x = fromX;

y = fromY;

while (x<toX) {

x = x+4/(Math.sqrt((toY-fromY)*

(toY-fromY)+(toX-fromX)*(toX-fromX)))*(toX-fromX);

y = y+4/(Math.sqrt((toY-fromY)*

(toY-fromY)+(toX-fromX)*(toX-fromX)))*(toY-fromY);

eval(targetMC).lineTo(x, y);

x = x+4/(Math.sqrt((toY-fromY)*

(toY-fromY)+(toX-fromX)*(toX-fromX)))*(toX-fromX);

y = y+4/(Math.sqrt((toY-fromY)*

(toY-fromY)+(toX-fromX)*(toX-fromX)))*(toY-fromY);

eval(targetMC).moveTo(x, y);

}

}

createEmptyMovieClip("obj",1);//建一空影片

DrawDottedLine("_root.obj", 1, 10, 10, 200, 300);

//调用函数

从场景的左上角到鼠标画虚线

代码:x = 0;

y = 0;//场景左上角的坐标

l = 0;

mx = _root._xmouse;

my = _root._ymouse;//鼠标的坐标

ml = Math.sqrt(mx*mx+my*my);//三角形的斜边长

_root.moveto(0, 0);//画线的起点为场景左上角的坐标

_root.linestyle(0.1, 0x000000, 100);

// 下面用三角函数求出每一段虚线的端点坐标,

然后用循环重复画一条短线和空格。直到线的终点位置。

while (l<ml) {

l += 5;

// 短线的长

x = l*mx/ml;

y = l*my/ml;

_root.lineto(x, y);

// 将绘图点移动到相当于短线长的,且与短线在同一直线的位置。即一个空格

l += 5;

x = l*mx/ml;

y = l*my/ml;

_root.moveto(x, y);

}

不错的画线函数,自定义点、线的样式、填充function Shape() {

this.points = [];

this.lines = false;

tthis.filled = false;

tthis.lineStyle = null;

this.t = eval(_target);

}

Shape.prototype.addPoint = function(x, y) {

this.points[this.points.length] = {x:x, y:y};

};

Shape.prototype.removePoint = function() {

this.points.pop();

};

Shape.prototype.draw = function(w, c, a) {

if (this.points.length>1) {

this.lineStyle = {w:w, c:c,a:a};

this.t.lineStyle(w, c, a);var i = 0;

var l = this.points.length;

while (i<l) {

this.t.lineTo(this.points[i].

x,this.points[i].y);

++i;

}

this.lines = true;

}

};

Shape.prototype.fill = function(c, a) {

if (this.points.length>1) {

if (this.lines) {

this.clear();

this.t.lineStyle(this.lineStyle.w,

this.lineStyle.c, this.lineStyle.a);

} else {

this.t.lineStyle(0,0xFFFFFF, 0);

if (this.filled){

this.clear();

}

}

this.t.beginFill(c, a);

var i = 0;

var l = this.points.length;

while (i<l) {

this.t.lineTo(this.points[i].x,this.points[i].y);

++i;

}

this.t.endFill();

this.filled = true;

}

};

Shape.prototype.getX = function() {

if (this.points.length) {

return this.points[this.points.length-1].x;

}

};

Shape.prototype.getY = function() {

if (this.points.length) {

return this.points[this.points.length-1].y;

}

};

g = new Shape();

g.addPoint(0, 100);

g.addPoint(100, 100);

g.addPoint(100, 0);

g.addPoint(0, 0);

g.fill(0x339900, 100);

g.draw(5, 0x000000, 100);

系列讲座二,用AS脚本画羽毛、画正余弦、画心脏线、画螺旋线、画旋转的长方体、画烛光、画十四面体……

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;

}

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有