绘制向量


var sp=new Sprite();
//向量的终点坐标
var v1=new Vector(100,200);
//(0,0)向量的起点坐标
drawArrow(sp.graphics,0,0,v1.x,v1.y);
//(20,,20)向量的起点坐标
drawArrow(sp.graphics,20,20,20+v1.x,20+v1.y);
this.addChild(sp);

function drawArrow(g:Graphics,x1,y1,x2,y2) {
 //箭头长度
 var len = 10;
 //箭头与直线的夹角
 var _a = 30;
 //直线的角度可由Degree类的atan2D函数进行计算,此函数返回的是角度值
 var angle = Degree.atan2D((y1-y2), (x1-x2));
 //将计算的角度修正在360度以内,以方便后面的计算
 angle = Degree.fixAngle(angle);
 //线的样式
 g.lineStyle(1.5,0xff0000)
 //将当前绘画位置移动到 (x, y)。
 g.moveTo(x2,y2)
 //使用当前线条样式绘制一条从当前绘画位置开始到 (x, y) 结束的直线;当前绘画位置随后会设置为 (x, y)。
 g.lineTo(x2+len*Degree.cosD(angle-_a), y2+len*Degree.sinD(angle-_a))
 g.moveTo(x2,y2)
 g.lineTo(x2+len*Degree.cosD(angle+_a), y2+len*Degree.sinD(angle+_a))
 g.moveTo(x1,y1)
 g.lineTo(x2,y2)
 
}

posted on 2012-11-05 21:38  笔墨丹青  阅读(309)  评论(0)    收藏  举报

导航