`
it_liuyong
  • 浏览: 100517 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

as3 画五角星算法

    博客分类:
  • flex
 
阅读更多
as3 画五角星算法
阅读:10次   时间:2012-03-22 19:08:16   字体:[大 中 小]



使用as3语言动态绘制五角星,主要难点在于动态转换五角星各个边得角度。

代码如下:

function drawStar():void
  {
   var m:MovieClip=new MovieClip();

   var radius:Number = 50;
   var color:uint = 0xFFFF00;
   m.graphics.lineStyle(5,0xFF0000);
   m.graphics.moveTo(radius,0);
   m.graphics.beginFill(color);

   for (var i:int=1; i<11; i++)
   {
    var radius2:Number = radius;
    if (i % 2 > 0)
    {
     radius2 = radius / 2;
    }
    var angle:Number = Math.PI * 2 / 10 * i;
    m.graphics.lineTo(Math.cos(angle)*radius2,Math.sin(angle)*radius2);
   }
   m.x = 200;
   m.y = 200;
   addChild(m);
  }

上面的代码是直接绘制五角星,不能设置各种参数。

下面的方法可以设置绘图的各种参数的行数,代码如下:

drawShape(graphics:Graphics, x:Number, y:Number,  innerRadius:Number, outerRadius:Number, points:Number = 5, angle:Number=90 ):void
  {
   graphics.clear();
         graphics.lineStyle(borderThickness,borderColor,borderAlpha);
         if(backgroundAlpha > 0)
         {
          graphics.beginFill(backgroundColor, backgroundAlpha);
         }
         var count:int = Math.abs(points);
         if (count>=2)
         {
              
             // calculate distance between points
             var step:Number = (Math.PI*2)/points;
             var halfStep:Number = step/2;
           
             // calculate starting angle in radians
             var start:Number = (angle/180)*Math.PI;
             graphics.moveTo(x+(Math.cos(start)*outerRadius), y-(Math.sin(start)*outerRadius));
               
             // draw lines
             for (var i:int=1; i<=count; i++)
             {
                 graphics.lineTo(x+Math.cos(start+(step*i)-halfStep)*innerRadius,
                 y-Math.sin(start+(step*i)-halfStep)*innerRadius);
                 graphics.lineTo(x+Math.cos(start+(step*i))*outerRadius,
                 y-Math.sin(start+(step*i))*outerRadius);
             }
         }
         if(backgroundAlpha > 0)
         {
          graphics.endFill();
         }
  }
分享到:
评论

相关推荐

    中点法画五角星-图象处理(C语言)

    在计算机图形学中,中点法是一种常用的算法,用于绘制各种几何形状,包括五角星。这个技术在C语言中尤为常见,因为它提供了基础的内存管理和控制结构,适合进行低级别的图形操作。本文将深入探讨如何使用C语言的中点...

    用MFC绘制五角星

    在本文中,我们将深入探讨如何使用Microsoft Foundation Classes (MFC)库在Windows应用程序中绘制五角星。MFC是微软为开发Windows桌面应用程序提供的一种C++类库,它简化了WinAPI接口的使用。 首先,我们需要理解五...

    用python画五角星

    此外,你还可以探索更复杂的图形算法,如Bresenham算法或递归方法来绘制五角星。这需要对数学和编程有更深入的理解,但可以实现更高效或动态的图形绘制。 总的来说,Python的`turtle`库为初学者提供了一种直观的...

    五角星扫描填充

    本文将深入探讨“五角星扫描填充”算法,这是一种利用链表实现的经典方法。五角星填充算法通常用于教育和实践,帮助程序员理解和掌握图形处理的基本原理。 首先,我们来看五角星的几何特性。五角星由两个交错的等边...

    VC++中五角星的绘制

    绘制五角星的基本算法可以分为以下步骤: 1. **定义五角星的中心**:确定五角星在窗口中的位置,可以通过设置一个中心点坐标(x,y)来完成。这个中心点通常是五角星最内部尖角的交点。 2. **计算五角星的半径**:...

    VB画五角星程序

    在VB(Visual Basic)编程...这个“VB画五角星程序”结合了VB的基础图形绘制、事件处理、用户交互以及一些几何算法,是一个很好的学习VB图形编程的实例。通过深入研究并实践,你可以更好地理解和掌握VB的这些核心概念。

    C++OpenGL画多个动态立体五角星

    多个立体五角星,加了光源,可以进行缩放、旋转、平移变换,同时可以在屏幕上显示自己的学号和姓名(中文),带注释

    c语言打印动态五角星

    3. 画直线完成五角星的绘制 五、主要模块的算法描述 主要模块包括文件输入输出和五角星绘制两个部分。 文件输入输出部分: 1. 文件打开函数:fopen(filename,"w+") 2. 文件写入函数:fputc(ch,fp) 3. 文件读取...

    西门子1200PLC画五角星

    西门子1200PLC画五角星 作为自动化领域的专业人士,我们今天要讨论如何使用西门子1200PLC画五角星。本节课程的主要目标是掌握轴运动直线轨迹的算法,掌握PLC编程的基本原理和实现方法。 一、轴组态基本参数 在...

    star.rar_C++绘制五角星_c++画五角星

    3. **五角星算法**: 绘制五角星通常涉及数学知识,尤其是几何和向量运算。五角星由两个交错的等边三角形构成,每个三角形的顶点都是五角星的一个顶点。通过计算每个顶点的坐标,可以使用`MoveTo()`和`LineTo()`函数...

    Flash As3 A星寻路算法

    **Flash AS3 A* 寻路算法详解** 在游戏开发和路径规划中,A*(发音为"A-star")寻路算法是一种广泛应用的路径搜索算法,它基于Dijkstra算法但更高效,因为它考虑了启发式信息来指导搜索方向。在Flash AS3环境中,A*...

    用java打印的一个五角星

    根据提供的文件信息,我们可以将相关的知识点分为两个部分:第一部分是使用递归算法在控制台打印五角星图案;第二部分则是使用Java Swing图形界面库绘制一个五角星。 ### 第一部分:使用递归算法在控制台打印五角星...

    计算机图形学-五角星变换-直线-圆-填充等-只可作为参考,不完全正确

    在这个主题中,我们将探讨五角星变换、直线绘制、圆形渲染以及图形的填充方法,这些都是计算机图形学的基本元素。不过,需要注意的是,提供的资源并不保证完全正确,可能只适用于特定的学习目的,比如完成作业,而且...

    DDA算法画线 C语言 计算机图形学

    在计算机图形学领域,DDA(Digital Differential Analyzer)算法是一种用于绘制直线的基本算法,尤其在早期的计算机图形处理中占有重要地位。通过本篇文章,我们将深入解析DDA算法的原理、实现过程及其在C语言中的...

    坐标系描点:五角星、四叶草、星芒

    对于“五星.txt”,这可能包含绘制五角星的算法或坐标数据。五角星由交叉的两个等边三角形组成,每条边与另一个三角形的对边相交。根据坐标系中的点,我们可以计算出每条线段的起点和终点,然后使用`Line`命令进行...

    as3.0 A星寻路算法,含源码

    A星(A*)寻路算法是计算机图形学和游戏开发中常用的一种路径搜索算法,它结合了最佳优先搜索(Dijkstra算法)和启发式搜索。在AS3.0中,这个算法通常用于创建智能角色在复杂网格环境中的移动路径,比如游戏中的NPC或...

    计算机图形学大作业 用vc++编的,包括画线(DDA、中点画线、brasenham算法)、画圆、椭圆、梁友栋裁剪算法、中点裁剪......

    - **中点画线算法**:这种方法基于梯形法则,每次从线段的中点出发,向两个端点方向迭代,可以减少错误累加,提高精度。 - **Bresenham算法**:这是一种优化的算法,通过对斜率进行比较,决定下一个像素点应该在...

    wujiaoxing.zip_stairsn4o_五角星

    描述提到的功能允许用户自定义画点方式,这表明该软件提供了交互式的绘图体验,用户可以通过点击鼠标或移动鼠标来改变绘制五角星的方式。 首先,我们来了解一下五角星的基本概念。五角星是由五个等腰三角形构成的...

    mmas_最大最小蚁群算法_MMASmatlab_mmas_

    最大最小蚁群算法(Max-Min Ant System, MMAS)是一种经典的优化算法,源自生物界蚂蚁寻找食物路径的行为。在蚁群优化算法中,每只蚂蚁代表一个可能的解决方案,它们在问题空间中搜索最优解。MMAS是最早被提出的蚁群...

    poly.zip_五角星填充_交线

    标题中的“poly.zip_五角星填充_交线”表明我们讨论的是一个关于如何使用扫描线算法填充五角星形状的案例。这个压缩包可能包含了实现这一算法的代码或示例,其核心是理解和处理图形边界的交点。 扫描线算法是一种...

Global site tag (gtag.js) - Google Analytics