我正试图通过Actionscript在FLash中重现智利国旗。我已经将蓝色方框和红色矩形向下,现在我需要弄清楚的是如何制作一个准确的开始形状来完成它。
您是否有通过Actionscript 3创建星形的任何指示?
到目前为止我的代码:
//blue box
var blue:Sprite = new Sprite();
addChild(blue);
blue.graphics.lineStyle();
blue.graphics.beginFill(0x0039A6,1);
blue.graphics.moveTo(0,0);
blue.graphics.lineTo(0,320);
blue.graphics.lineTo(320,320);
blue.graphics.lineTo(320,0);
//red rectanle
var red:Sprite = new Sprite();
addChild(red);
red.graphics.lineStyle();
red.graphics.beginFill(0xD52B1E,1);
red.graphics.moveTo(0,320);
red.graphics.lineTo(0,640);
red.graphics.lineTo(960,640);
red.graphics.lineTo(960,320);
智利国旗:
非常感谢任何帮助。
答案 0 :(得分:1)
这不是闪光,而是明星的伪代码
var outerSize = 10;
var innerSize = 5;
var rotation = 3.141592/2;
var delta = 2*3.141592/5.0;
var xpos = 100;
var ypos = 100;
for(var point=0;point<5;point++)
{
red.graphics.moveto(outerSize * cos(delta*point + rotation) + xpos,
outerSize * sin(delta*point + rotation) + ypos);
red.graphics.lineto(innerSize * cos(delta*(point + 0.5) + rotation) + xpos,
innerSize * sin(delta*(point + 0.5) + rotation) + ypos);
red.graphics.lineto(outerSize * cos(delta*(point + 1.0) + rotation) + xpos,
outerSize * sin(delta*(point + 1.0) + rotation) + ypos);
}
如果要填充多边形,可能需要执行其他操作,但这里是多边形的坐标。
如果你正在绘制很多星星,我建议预先计算坐标并将它们存储在一个数组中。 cos和罪可能是昂贵的操作。