? 第一种
??? 参考图片

代码:
?
- /**??
- ???*?画箭头???
- ???*?---▲??
- ???*?@param?start??开始节点??
- ???*?@param?end????结束节点??
- ???*?@param?color??线条颜色??
- ???*?@param?alpha??透明度??
- ???*?@param?radius??箭头的大小??
- ???*???
- ???*/??
- ??public?function?drawArrow(start:Point,end:Point,color:uint=0x000000,alpha:Number=1,radius:Number=8.5):void{??
- ???var?z:Number=Math.sqrt((end.x?-?start.x)?*?(end.x?-?start.x)?+?(end.y?-?start.y)?*?(end.y?-?start.y));??
- ???var?angle:Number=Math.atan2(end.y?-?start.y,?end.x?-?start.x);??
- ???var?exAngle:Number=Math.PI?*?4.8?/?4;??
- ???var?p1:Point=Point.polar(z,?angle);??
- ???var?p2:Point=Point.polar(radius,?angle?+?exAngle);??
- ???var?p3:Point=Point.polar(radius,?angle?-?exAngle);??
- ???p1.offset(start.x,?start.y);??
- ???p2.offset(p1.x,?p1.y);??
- ???p3.offset(p1.x,?p1.y);??
- ???if(alpha>1)?alpha=1;??
- ???else?if(alpha<0)?alpha=0;??
- ???arrow.graphics.beginFill(color,alpha);??
- ???arrow.graphics.moveTo(p1.x,255); color:inherit; line-height:18px"> ???arrow.graphics.lineTo(p2.x,?p2.y);??
- ???arrow.graphics.lineTo(p3.x,?p3.y);??
- ???arrow.graphics.lineTo(p1.x,92); line-height:18px"> ???arrow.graphics.endFill();??
- ???this.addChild(arrow);??
- ??}??
???
?? 第二种???
???? 参考图片
???? 
代码:
???*??画箭头方法??
- ???*?????
- ???*??→??
- ???*?@param?x1??开始节点x轴坐标??
- ???*?@param?y1??开始节点y轴坐标??
- ???*?@param?x2??结束节点x轴坐标??
- ???*?@param?y2??结束节点y轴坐标??
- ???*?@param?lineThickness?线条的粗细??
- ???*?@param?color??线条的颜色??
- ???*???
- ???*/???
- ??public?function?performArrowDrawing(x1:Number,?y1:Number,?x2:Number,?y2:Number,?lineThickness:Number,?color:Number,?alpha:Number):void{??
- ???arrow.graphics.lineStyle(lineThickness,?color,?alpha);??
- ???var?arrowHeight:Number?=?15;??
- ???var?arrowWidth:Number?=?10;??
- ???var?angle:Number?=?Math.atan2(y2-y1,?x2-x1);??
- ???arrow.graphics.moveTo(x2-arrowHeight*Math.cos(angle)-arrowWidth*Math.sin(angle),??
- ????y2-arrowHeight*Math.sin(angle)+arrowWidth*Math.cos(angle));??
- ???arrow.graphics.lineTo(x2,?y2);??
- ???arrow.graphics.lineTo(x2-arrowHeight*Math.cos(angle)+arrowWidth*Math.sin(angle),???
- ????y2-arrowHeight*Math.sin(angle)-arrowWidth*Math.cos(angle));???
- ??}??
?
?第三种
?????? 参考图片

??? 代码:
?
???*?@param?startX??
- ???*?@param?startY??
- ???*?@param?endX??
- ???*?@param?endY??
- ???*?@return???
- ???*/private?function?GetAngle(startX:Number,startY:Number,endX:Number,endY:Number):int??
- ????????{??
- ????????????var?tmpx:int=endX-startX?;??
- ????????????var?tmpy:int=startY?-endY?;??
- ????????????var?angle:int=?Math.atan2(tmpy,tmpx)*(180/Math.PI);??
- ????????????return?angle;??
??/**??
- ????*???
- ????*?@param?startX?开始节点x轴坐标??
- ????*?@param?startY?开始节点y轴坐标??
- ????*?@param?endX???结束节点x轴坐标??
- ????*?@param?endY???结束节点y轴坐标??
- ????*?@param?Radius?箭头的大小??
- ????*/?public??function?drawArrowCenter(startX:Number,endY:Number,Radius:Number):void?{??
- ?????????????var?angle:int=?GetAngle(startX,startY,endX,endY);??
- ?????????????var?centerX:int=endX-Radius?*?Math.cos(angle?*(Math.PI/180))?;??
- ?????????????var?centerY:int=endY+Radius?*?Math.sin(angle?*(Math.PI/180))?;??
- ?????????????var?topX:int=endX?;??
- ?????????????var?topY:int=endY??;??
- ?????????????var?LineColor:uint=0x8699A5;??
- ?????????????var?leftX:int=centerX?+?Radius?*?Math.cos((angle?+120)?*(Math.PI/180))??;??
- ?????????????var?leftY:int=centerY?-?Radius?*?Math.sin((angle?+120)?*(Math.PI/180))??;??
- ???????????????
- ?????????????var?rightX:int=centerX?+?Radius?*?Math.cos((angle?+240)?*(Math.PI/180))??;??
- ?????????????var?rightY:int=centerY?-?Radius?*?Math.sin((angle?+240)?*(Math.PI/180))??;??
- ???????????????
- ?????????????arrow.graphics.beginFill(LineColor,1);??
- ?????????????arrow.graphics.lineStyle(1,LineColor,92); line-height:18px"> ?????????????arrow.graphics.moveTo(topX,topY);??
- ?????????????arrow.graphics.lineTo(leftX,leftY);??
- ?????????????arrow.graphics.lineTo(centerX,centerY);??
- ?????????????arrow.graphics.lineTo(rightX,rightY);??
- ?????????????arrow.graphics.lineTo(topX,255); color:inherit; line-height:18px"> ?????????????arrow.graphics.endFill();??
- ??
- ?????????}??
其中第三种算法有点问题,箭头不对称,需要修改。希望高手指导。在此先感谢了
忘记加上
public?var?arrow:UIComponent=new?UIComponent();??
(编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|