Flexを使用したActivityプロセスデザイナの開発(7)-線矢印描画
1684 ワード
線を描く矢印は、線の開始座標と終了座標に基づいて角度を決定します.
コード:
コード:
public function drawArrow(ui:Sprite,fromPoint:Point,toPoint:Point,color:uint):void
{
ui.graphics.lineTo(toPoint.x,toPoint.y);
var vDistance:Number= toPoint.y-fromPoint.y;//
var sDistance:Number=Point.distance(fromPoint,toPoint);//
var sinValue:Number=vDistance/sDistance;// sin
/** ( )*/
var radian:Number=Math.asin(sinValue);
this.radian = radian;
/** ( )*/
var hRadian:Number=Math.PI/6-radian;
/** ( )*/
var vRadian:Number=radian+Math.PI/6;
/** */
var topYDis:Number=13*Math.sin(vRadian);
/** */
var topXDis:Number=13*Math.cos(vRadian);
/** */
var botYDis:Number=13*Math.sin(hRadian);
/** */
var botXDis:Number=13*Math.cos(hRadian);
/** */
var topPointX:Number=toPoint.x-topXDis;
var topPointY:Number=toPoint.y-topYDis;
var botPointX:Number=toPoint.x-botXDis;
var botPointY:Number=toPoint.y+botYDis;
if(toPoint.x<fromPoint.x)
{
topPointX=toPoint.x+topXDis;
botPointX=toPoint.x+botXDis;
}
ui.graphics.beginFill(0xFECff0);
ui.graphics.moveTo(topPointX,topPointY);
ui.graphics.lineTo(toPoint.x,toPoint.y);
ui.graphics.lineTo(botPointX,botPointY);
ui.graphics.lineTo(topPointX,topPointY);
}