11RIA 闪客社区 - 最赞 Animate Flash 论坛

搜索
楼主: TKCB
上一主题 下一主题

[★ AS3 类库] Sector(AS3绘制扇形,半圆,官方API没有这个功能哦!)

[复制链接] TA的其它主题
发表于 2019-10-24 11:08:12 | 显示全部楼层
如果您要查看本帖隐藏内容请
回复

使用道具 举报

发表于 2019-11-1 17:07:57 | 显示全部楼层
看看看看看看看看看看看看看看看看看看看看
回复

使用道具 举报

发表于 2019-11-1 17:50:44 | 显示全部楼层
...怎么看这帖子也裂了啊..

画扇形这个做法

  1. public static function drawSectorOn(mc:Sprite, xOffset:Number, yOffset:Number, innerRad:Number, outterRad:Number, rot:Number, radian:Number, color:Number=0x0033ff, alpha:Number = 0.35):void {
  2.                         var g:Graphics = mc.graphics;
  3.                         g.lineStyle(1,0,  alpha);
  4.                         g.beginFill(color, alpha);
  5.                        
  6.                         if(radian >= 180){
  7.                                 g.drawCircle(xOffset, yOffset, innerRad);
  8.                                 g.drawCircle(xOffset, yOffset, outterRad);
  9.                         }else{
  10.                                 var d:int = Math.ceil(radian*2 / 15);
  11.                                 //内径
  12.                                 var rot_RAD:Number = (90-rot+radian)*Gmath.TO_RAD;
  13.                                 g.moveTo(xOffset+innerRad*Math.cos(rot_RAD), yOffset + innerRad*Math.sin(rot_RAD));
  14.                                 for(var i:int = 1;i<=d;i++){
  15.                                         rot_RAD = (90-rot+radian-(radian*2*i/d))*Gmath.TO_RAD;
  16.                                         g.lineTo(xOffset+innerRad*Math.cos(rot_RAD), yOffset + innerRad*Math.sin(rot_RAD));
  17.                                 }
  18.                                 rot_RAD = (90-rot-radian)*Gmath.TO_RAD;
  19.                                 g.lineTo(xOffset+outterRad*Math.cos(rot_RAD), yOffset + outterRad*Math.sin(rot_RAD));
  20.                                 for(i = d;i>=0;i--){
  21.                                         rot_RAD = (90-rot+radian-(radian*2*i/d))*Gmath.TO_RAD;
  22.                                         g.lineTo(xOffset+outterRad*Math.cos(rot_RAD), yOffset + outterRad*Math.sin(rot_RAD));
  23.                                 }
  24.                                 rot_RAD = (90-rot+radian)*Gmath.TO_RAD;
  25.                                 g.lineTo(xOffset+innerRad*Math.cos(rot_RAD), yOffset + innerRad*Math.sin(rot_RAD));
  26.                         }
  27.                         g.endFill();
  28.                 }
复制代码
回复

使用道具 举报

发表于 2019-11-1 20:37:11 | 显示全部楼层
非常好的代码
回复

使用道具 举报

发表于 2020-4-26 11:22:11 | 显示全部楼层
有没有只画弧线的?
回复

使用道具 举报

 楼主| 发表于 2020-4-26 11:45:17 | 显示全部楼层
zbhts 发表于 2020-4-26 11:22
有没有只画弧线的?

有,但是没有分享出来(暂时也不会分享),所以你可以看看
http://www.11ria.com/forum.php?mod=viewthread&tid=211
这里的
回复

使用道具 举报

发表于 2020-5-8 17:59:08 | 显示全部楼层
支持一下
回复

使用道具 举报

发表于 2020-8-6 14:03:24 | 显示全部楼层

谢谢楼主分享!
回复

使用道具 举报

发表于 2022-3-11 10:21:38 | 显示全部楼层
学些一下
回复

使用道具 举报

发表于 2022-3-14 14:00:33 | 显示全部楼层
学习学习,顺便保留一份存档
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐 上一条 /1 下一条

感谢所有支持论坛的朋友:下面展示最新的5位赞助和充值的朋友……更多赞助和充值朋友的信息,请查看:永远的感谢名单

SGlW(66139)、 anghuo(841)、 whdsyes(255)、 longxia(60904)、 囫囵吞澡(58054)

下面展示总排行榜的前3名(T1-T3)和今年排行榜的前3名的朋友(C1-C3)……更多信息,请查看:总排行榜今年排行榜

T1. fhqu1462(969)、 T2. lwlpluto(14232)、 T3. 1367926921(962)  |  C1. anghuo(147)、 C2. fdisker(27945)、 C3. 囫囵吞澡(58054)



快速回复 返回顶部 返回列表