package
{
import flash.display.Sprite;
import flash.text.TextField;
import flash.text.TextFormat;
import flash.text.TextFieldAutoSize;
import flash.events.Event;
public class Main extends Sprite
{
var w:Number = stage.stageWidth;//舞台宽度550
var h:Number = stage.stageHeight;//舞台高度400
var array1:Array = ["X","Y","1","0","-1"];
var array2:Array = [1,2,3,4];
var mAngle:Number = 0;//正弦角度
var mX:Number = 0;//正弦X轴坐标
public function Main()
{
InitStage();
}
//初始化舞台
private function InitStage()
{
var sp:Sprite=new Sprite();
sp.x = 0;
sp.y = 0;
stage.addChild(sp);
//相当于省略每句的sp
with (sp)
{
graphics.lineStyle(2,0x000000);
//绘制X、Y轴直线;
graphics.moveTo(40,h/2);
graphics.lineTo(w-80,h/2);
graphics.moveTo(40,40);
graphics.lineTo(40,h-40);
//绘制X、Y轴箭头;
graphics.beginFill(0x000000);
graphics.drawTriangles(Vector.<Number>([w-80,h/2-10,w-60,h/2,w-80,h/2+10]));
graphics.drawTriangles(Vector.<Number>([30,40,50,40,40,20]));
graphics.endFill();
}
//添加文字X、Y、1、0、-1;
for (var i:Number=0; i<array1.length; i++)
{
var txt:TextField=new TextField();
txt.defaultTextFormat = new TextFormat("Times New Roman",20,0x000000,true,true);
txt.autoSize = TextFieldAutoSize.CENTER;
txt.text = array1[i];
switch (array1[i])
{
case "X" :
txt.x = w - 60;
txt.y = h / 2;
break;
case "Y" :
txt.x = 40;
txt.y = 10;
break;
case "1" :
txt.x = 40;
txt.y = h / 2 - 90;
break;
case "0" :
txt.x = 40;
txt.y = h / 2;
break;
case "-1" :
txt.x = 40;
txt.y = h / 2 + 90;
break;
default :
break;
}
stage.addChild(txt);
}
//添加X轴上的1,2,3,4
for (var j:Number=0; j<array2.length; j++)
{
var txt2:TextField=new TextField();
txt2.defaultTextFormat = new TextFormat("Times New Roman",20,0x000000,true,true);
txt2.autoSize = TextFieldAutoSize.CENTER;
txt2.x = 40 + (j + 1) * 90;
txt2.y = h / 2;
txt2.text = array2[j];
stage.addChild(txt2);
}
//添加正弦线
var line1:Sprite=new Sprite();
line1.graphics.lineStyle(2,0x000000);
line1.graphics.moveTo(40,h/2);
line1.addEventListener(Event.ENTER_FRAME,drawSin);
stage.addChild(line1);
}
//绘制正弦线
private function drawSin(e:Event):void
{
var line1:Sprite = e.target as Sprite;
//1帧增加6度获取Y轴坐标
mAngle += 6;
var mRadian:Number=mAngle*(Math.PI/180);
var mY = -90 * Math.sin(mRadian);
//1帧增加6像素获取X轴坐标
mX += 6;
line1.graphics.lineTo(40+mX,h/2+mY);
//当正弦的横坐标跑到360px后停止
if (mX==360)
{
line1.removeEventListener(Event.ENTER_FRAME, drawSin);
}
}
}
}
ActionScript 正弦函数图像绘制
最新推荐文章于 2019-02-15 10:58:41 发布