flash 绘图API:太极
2010-03-02 00:00:00 来源:WEB开发网查看原图(大图)
里面参数有分别图形对象,开始角,结束的角度,半径,颜色填充值。这样就基本能够实现到我们预想到效果。
这种通过描点的方式来实现扇形效果。
实现完成之后,我们继续按下面的图案来描写圆,一共是5个圆,最大的圆是由两个扇形完成,其他即通过绘图api drawCircl 填充。
填充颜色的时候,关键一点是对颜色处理,这样才能实现太极图案。
查看原图(大图)
太极图行类:
按上面的思路图进行绘制。
1. package
2. {
3. //绘制太极
4. import flash.display.Sprite;
5. import flash.events.*;
6. import flash.display.Graphics;
7. import flash.geom.Point;
8.
9. public class TaiJi extends Sprite
10. {
11. private var shape:Sprite=new Sprite();
12. private var contain:Sprite=new Sprite();
13. private var shape2:Sprite=new Sprite();
14. private var shape3:Sprite=new Sprite();
15. private var R:int;//半径
16. private var startX:Number=0;
17. private var startY:Number=0;
18. public function TaiJi(R:int)
19. {
20. this.R=R;
21. addChild(shape);
22. shape.x=startX;
23. shape.y=startY;
24. addChild(shape2);
25. addChild(shape3);
26. creatSprite();
27. }
28. private function creatSprite():void
29. {
30. pie(shape.graphics,90,270,R,0x000000);////绘制扇形左边
31. pie(shape.graphics,270,450,R,0xffffff);//绘制扇形右边
32.
33. shape2.graphics.beginFill(0xffffff);//绘制下圆
34. shape2.graphics.drawCircle(startX,startY+R/2,R/2);
35. shape2.graphics.endFill();
36.
37. shape2.graphics.beginFill(0x000000);//绘制上圆
38. shape2.graphics.drawCircle(startX,startY-R/2,R/2);
39. shape2.graphics.endFill();
40.
41. shape3.graphics.beginFill(0xffffff);
42. shape3.graphics.drawCircle(startX,startY-R/2,R/4);
43. shape3.graphics.endFill();
44.
45. shape3.graphics.beginFill(0x000000);
46. shape3.graphics.drawCircle(startX,startY+R/2,R/4);
47. shape3.graphics.endFill();
48.
49.
50. }
51. //绘制扇形
52. private function pie(g:Graphics,startAngle:Number,endAngle:Number,radius:Number,color:uint):void
53. {
54. g.lineStyle(1);
55. g.moveTo(0,0);
56. g.beginFill(color);
57. for (var i:Number=startAngle; i<=endAngle; i++)
58. {
59. var angle:Number = i*Math.PI/180;
60. var pointX:Number=Math.cos(angle)*radius;
61. var pointY:Number=Math.sin(angle)*radius;
62. g.lineTo(pointX, pointY);
63. }
64. g.lineTo(0,0);
65. g.endFill();
66. }
67. }
68. }
- ››FLASH不等于运算符!=的使用实例
- ››FLASH不全等运算符!==
- ››FLASH字符串分隔符运算符
- ››FLASH% 模运算符
- ››Flash+、++、+= 加法运算符
- ››Flash, 逗号运算符
- ››flash中的-、--、-=减法运算符
- ››Flash的-Infinity 常数、.点运算符、/ 除法运算符...
- ››Flash两种注释方法/*..*/ 和// 注释行分隔符运算符...
- ››Flash的/=除法赋值运算符、=赋值运算符、== 等于运...
- ››Flash之?: 条件运算符、^ 按位 XOR 运算符、^= 按...
- ››Flash的_framesloaded代码示例
更多精彩
赞助商链接