createjs绘制扇形的方法

扇形由三段线条组成,两条直线和一条弧线,直线可以用createjs中的lineTo函数画出,弧线用Graphics.arc函数来画。

一、关于createjs中的Graphics.Arc API

Graphics.Arc用来画一条弧线,函数签名如下:

Graphics.Arc(x, y,半径,开始的弧度a,结束的弧度b,逆时方向)

默认情况下开始的角度和结束的角度指从x轴方向开始逆时针旋转的弧度(弧度取值为0~2π),最后一个参数决定是按逆时针还是顺时针旋转(默认为true,即按逆时针方向)。本实例按顺时针编程,如下图:

 

 

二、已知圆心、半径、起始角度和弧度画扇形的方法

 

如上图,扇形由三条线段组成(两条直线和一条弧线),画第一条线段时,需要知道a点的位置,由于已知圆心(x,y)、起始角度(startFrom)和半径r,根据三角函数,a点很容易求出,即:

//为了使方法方便使用,这里的起始角度和扇形弧度参数都用角度表示,由于三角函数用的弧度制,这里先转换为弧度。
startFrom = startFrom * Math.PI / 180;
	
var x1=x+r * Math.cos(startFrom);
var y1=y+r * Math.sin(startFrom);

画弧线时,根据以上Graphic.Arc 参数可知需要先算出结束角度,用起始角度+扇形弧度即可:

var endAngle=startFrom+angle*Math.PI/180;

最后,再将线段画回至圆心即可。代码如下,这里加入了填充颜色的参数color:

 1 function drawSector(mc, x, y, r, angle, startFrom, color) {
 2     
 3     mc.graphics.clear();    
 4     mc.graphics.beginFill(color);
 5     mc.graphics.moveTo(x, y);
 6     
 7     angle = (Math.abs(angle) > 360) ? 360 : angle;
 8     //为了使方法方便使用,这里的起始角度和扇形弧度都用角度表示,由于三角函数用的弧度制,这里先转换为弧度。
 9     startFrom = startFrom * Math.PI / 180;
10     
11     var x1=x+r * Math.cos(startFrom);
12     var y1=y+r * Math.sin(startFrom);
13     var endAngle=startFrom+angle*Math.PI/180;
14     
15     mc.graphics.lineTo(x1,y1);
16     mc.graphics.arc(x,y,r,startFrom,endAngle,false);
17     
18     if (angle != 360) {
19         mc.graphics.lineTo(x, y);
20     }
21     mc.graphics.endFill(); 
22 }    

 

转载于:https://www.cnblogs.com/snsart/p/7156633.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
CreateJS是一组用于构建HTML5网页游戏和应用程序的JavaScript库。它由四个库组成:EaselJS,TweenJS,SoundJS和PreloadJS。 EaselJSCreateJS库中的绘图API,鼓励使用基于对象的编程模型来创建复杂的交互式图形,动画和其他高性能图形应用程序。它提供了2D图形,动画,粒子系统和轻量级事件处理。EaselJS还可以通过Canvas和WebGL来呈现符合WebGL标准的3D图形,它提供了一个易于使用的渲染API,并且可以与其他CreateJS库无缝集成。 TweenJS是一个用于创建和管理过渡动画的JavaScript库。它支持自定义缓动和链式动画序列,使开发人员可以使用TweenJS轻松地创建复杂的交互式动画,如曲线运动和补间动画。TweenJS可以与EaselJS和其他CreateJS库一起使用,提供了更高级别的动画能力,使开发人员可以更轻松地控制动画的流程和效果。 SoundJSCreateJS库中的音频管理库。它提供了一种易于使用的API,使开发人员可以创建、播放和控制声音。它支持HTML5之外的各种浏览器和平台,并且可以自动切换到适当的音频格式,以便在不同的浏览器和设备上播放音频。 PreloadJSCreateJS库中的预加载库。它提供了一种易于使用的方式,以确保所有媒体文件和其他资源在应用程序加载时及时预加载,以最大程度地优化应用程序的效率和性能。 PreloadJS支持不同类型的文件和格式,并可以根据需要预加载,例如在应用程序外部加载音频文件,以免在应用程序运行时造成延迟。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值