ActionScript编程 绘制圆形
ActionScript编程 绘制显示对象到位图中
ActionScript编程绘制显示对象到位图中作用:将显示对象中的图形内容绘制到位图中,并将其显示到舞台中。
说明:在创建位图数据(BitmapData)类的实例时,通常只能创建一个空白矩形,并为其填充指定的颜色。
使用位图数据(BitmapData)类的draw()方法,可以将其他显示对象容器中的内容绘制到位图数据对象中,如下所示。
BitmapDataObject.draw(Source,Matrix,ColorTransform,BlendMode,ClipRect,Sm oothing);在上面的代码中,各关键词的含义如下所示。
●BitmapDataObject 位图数据对象的实例名称●Source 要绘制到位图数据对象中的源显示对象●Matrix 矩阵对象,用于缩放、旋转位图或转换位图的坐标●ColorTransform 颜色转换对象,用于调整对象的颜色值●BlendMode 混合模式对象,用于调整对象的混合模式●ClipRect 矩形对象,用于定义裁减对象的矩形区域●Smoothing 逻辑型数据,定义在对象被旋转或缩放后,是否为对象提供平滑处理。
在使用draw()方法时,Source参数为该方法的必须参数。
而其他各参数例如Matrix、ColorTransform、BlendMode和ClipRect参数均为可选的参数,Smoothing参数也可以省略,其默认值为false,且只有Source参数为BitmapData对象时,Smoothing参数才起作用。
示例:在ActionScript中,用户可以通过图形(Graphics)类中的各种方法绘制矢量图形,然后再将图形添加到位图中。
draw()方法的出现,可以使位图数据(BitmapData)类绘制各种图形。
例如,绘制一个半径为100像素的圆,并将其添加到位图中,如下所示。
var main:Sprite=new Sprite();//创建图像单元对象main.graphics.lineStyle(2,0xff0000,1);main.graphics.beginFill(0x00FF00,1);//定义矢量绘图对象的笔触和填充main.graphics.drawCircle(100,100,100);//绘制圆形var mybmpdt:BitmapData=new BitmapData(200,200); //创建位图数据对象,并设置其大小mybmpdt.draw(main);//将矢量图形添加到位图数据对象中var mybmp:Bitmap=new Bitmap(mybmpdt);//创建位图对象,并将位图数据对象添加到位图中stage.addChild(mybmp);//将位图对象显示到舞台。
第17章 ActionScript 3.0运动编程
第17章ActionScript 3.0运动编程本章主要讲解物体移动时运动效果的形成。
如果读者有较好的数学知识和物理知识将更加有利于理解本章内容。
本章首先阐述物体运动的一般原理,以及在ActionScript 3.0中实现物体移动的常用方法。
然后根据物体移动原理结合数学和物理的方法实现一个简易的物理引擎,通过这个物理引擎模拟物体在不同受力环境下的运动情况。
这些运动包括很多常见的运动。
例如,匀速直线运动、匀加速直线运动、抛物运动、圆周运动以及卫星绕地的运动。
通过本章的介绍读者将对ActionScript 3.0中的运动编程有更好的理解。
17.1 运动编程原理有很多种方式可以使用ActionScript中的可视对象方式移动。
例如,对图形进行连续不断的擦除重绘可以使图形发生移动的效果。
但是这种方法效率不是太高。
可以设置可视对象的x、y属性从而改变可视对象的位置,通常都会采用这种方式。
当然,设置可视对象的transform属性的matrix属性tx和ty属性也能改变可视对象的位置。
持续调用可以使用Timer对象或帧频事件实现,通常情况下会较多使用帧频事件调度。
本节将对这些可视对象的移动方法以及连续运动的调度方法进行详细介绍。
17.1.1 物体移动要使可视对象在Flash Player的舞台对象上产生运动效果,就需要不断改变可视对象的位置使可视对象发生移动。
所谓改变可视对象位置就是要改变可视对象x、y属性的值。
为了使可视对象的x、y坐标持续改变,就需要一个被持续调用的函数。
这个持续调的过程可以使用Timer对象的计时器事件或帧频事件实现。
通常情况下,有两种方法用于改变可视对象的位置:图形重绘和重设坐标点。
第1种方法是图形重绘,通过不断地重新绘制图形实现。
例如,要使一个圆形的可视对象发生移动效果,第1次以(x0,y0)为坐标点圆心绘制,第2次重绘时首先擦除上一次绘制的图形,然后再以新的坐标点(x1,y1)为圆心重新绘制。
ActionScript编程 绘图代码编写技巧
ActionScript编程绘图代码编写技巧如果要使用Graphics类的方法,首先要创建显示实例,由于主时间轴是MovieClip类的实例,在编写测试绘制代码时,可在主时间直接进行。
但在实际应用中,绘图最好放在单独的Shape类中,如果图形很复杂,可创建显示容器来放置图形。
下面的示例直接在主时间轴绘制直线:this.graphics.lineStyle(1);//定义线条样式this.graphics.moveTo(100,100);//定义线条起点this.graphics.lineTo(200,200);//定义线条终点上面代码中的this引用主时间轴,所以this具有graphics属性,通过点语法就可以访问graphics属性。
同时,graphics属性又引用Graphics类的实例,通过点语法就可以调用该实例的方法。
如果上面的类似代码很多,需要重复编写“this.graphics”这样的代码,而且,点语法的运往不是很快。
因此需要对该段代码进行优化。
例如,通过创建with语句来简化上面的代码,如下所示。
with (this.graphics){lineStyle(1);moveTo(100,100);lineTo(200,200);}利用with语句,只需要访问一次this.graphics属性,就可以多次调用绘图方法。
同样,也可以使用自定义函数来简化,如下所示。
drawLine(this.graphics);function drawLine(g:Graphics):void{g.lineStyle(1);g.moveTo(100,100);g.lineTo(200,200);}在上面的示例中定义了drawLine()函数,它带有数据类型为Graphics的参数,表示该参数是Graphics类的实例,通过实例和点语法就可以调用相应的绘制方法。
在调用函数时,只需要传递引用Graphics类的实例的属性。
ActionScript编程 综合实例:简单记事本程序
ActionScript编程综合实例:简单记事本程序Windows操作系统自带有记事本程序,用户可以在记事本中输入文字,并可设置这些文字的字体、大小、颜色等属性。
其实,在Flash 中通过ActionScript代码也可以制作简单地记事本程序,如图19-1所示。
图19-1 简单记事本程序制作过程:(1)新建550×400像素的空白文档,将背景素材图像导入到舞台,并将ComboBox 和ColorPicker 组件拖入到【库】面板中,如图19-2所示。
图19-2 拖入组件(2)在舞台的下面绘制两个大小相近的圆角矩形,并设置其Alpha 值分别为“60%”和“50%”,如图19-3所示。
图19-3 绘制圆角矩形(3)在相同文件夹中新建名称为Text 的ActionScript 文件,并在该文件中使用import 语句导入所需的类,以及创建包、Text 类和Text()主函数,如下所示。
package {import flash.display.Sprite; import flash.text.TextField; importflash.text.TextFieldAutoSize;import flash.text.TextFormat; import flash.text.TextFieldType; import boBox; import flash.events.Event; import fl.controls.ColorPicker;public class Text extends Sprite {var content_txt:TextField; //用于显示文本内容的文本字段var color_txt:TextField; //用于显示颜色值的文本字段public function Text() { //主函数体 } } }(4)创建名称为createTitle 的函数,该函数创建一个用于显示标题的文本字段,并为其定义文本样式,如下所示。
FLASH CS6 期末考试试卷
FLASH CS6 期末考试试卷FLASH CS6期末考试试卷一、填空题1、FLASH CS6是由___ Macromedia___公司推出的多媒体创作工具软件,它主要用于制作和编辑___动画___。
2、在FLASH CS6中,可以使用___时间轴___来控制动画的播放顺序和持续时间。
3、为了使FLASH动画具有更好的交互性,可以使用___ ActionScript___语言来编写交互式脚本。
4、FLASH CS6提供了多种导入图形图像的方法,其中包括导入___位图图像___和导入___矢量图图像___。
5、在FLASH CS6中,可以使用___变形面板___来对矢量图进行变形和调整。
二、选择题1、下列哪个选项不是FLASH CS6的主要特点?(A) A. 可以创建独立的多媒体程序 B. 可以将动画导出为多种文件格式 C. 支持矢量图形和位图图像 D. 支持多媒体插件和流媒体技术2、在FLASH CS6中,可以使用哪个工具来绘制圆形?(B) A. 矩形工具 B. 椭圆工具 C. 多边形工具 D. 铅笔工具3、下列哪个选项不是ActionScript 3.0中的关键字?(C) A. varB. functionC. thisD. null4、在FLASH CS6中,可以使用哪个菜单来设置对象的位置和大小?(A) A. 变形面板 B. 颜色面板 C. 动作面板 D. 文件菜单5、下列哪个选项不是FLASH CS6的导出文件格式?(D) A. SWF B. GIF C. AVI D. DOCX三、简答题1、请简述FLASH CS6中动画制作的基本步骤。
答:在FLASH CS6中,制作动画的基本步骤包括:创建动画角色和场景,设置动画的关键帧和补间,添加声音和交互式元素,以及测试和发布动画。
2、请简述ActionScript 3.0与ActionScript 2.0的主要区别。
答:ActionScript 3.0与ActionScript 2.0的主要区别在于性能和编程风格的改变。
Flash CS3 课堂练习:创建可拖动的圆
Flash CS3 课堂练习:创建可拖动的圆本练习通过ActionScript的类功能,创建可拖动的圆。
其中,类文件将封装整个影片剪辑的拖动动作。
创建了类文件后,不管什么时候,只要创建一个类的新实例,它就是可被拖动的,这样就省去了为场景中的每个实例编写代码的麻烦。
操作步骤:(1)在Flash CS3中,选择【文件】|【新建】选项,新建一个文档,并将它保存为simpleBall.fla。
接着在工具箱中单击【椭圆工具】按钮,禁用笔触颜色,设置填充颜色为#FFCC33,在场景中绘制一个100×100的正圆,如图8-1所示。
图8-1 绘制圆(2)在绘图区选中刚绘制的圆,按下F8键,打开【转换为元件】对话框,在其中的【名称】文本框中输入circle,并选择【影片剪辑】单选按钮,最后单击【确定】按钮,同时将场景中的圆形删除。
(3)按下Ctrl+N快捷键,新建一个ActionScript文件,并将其保存为Ball.as。
此文件保存的位置应与simpleBall.fla在同一个文件夹中。
(4)接着在代码编辑窗口中输入如下所示的代码:通过这些代码来定义一个名称为Ball的新类。
package {import flash.display.MovieClip;import flash.events.MouseEvent;public class Ball extends MovieClip {public function Ball() {trace("ball created: " + );this.buttonMode = true;this.addEventListener(MouseEvent.CLICK, clickHandler); this.addEventListener(MouseEvent.MOUSE_DOWN, mouseDownListener);this.addEventListener(MouseEvent.MOUSE_UP,mouseUpListener);}private function clickHandler(event:MouseEvent):void { trace("You clicked the ball");}function mouseDownListener(event:MouseEvent):void { this.startDrag();}function mouseUpListener(event:MouseEvent):void { this.stopDrag();}}}通过这些代码来定义一个名称为Ball 的新类,它继承了MovieClip 类,内置在flash.display package 中。
Flash ActionScript3.0代码绘制矢量图-图形的绘制
矢量图-图形的绘制实际上我们在使用lineTO和curveTo指令的时候是可以不断的绘制出线条,当线条封闭成为一个封闭的形状的时候,实际上就等于已经绘制出来了几何图形。
比如说这段代码。
首先生成一个画布,然后把画布添加到显示场景中。
然后用g对画布的Graphics类做引用。
用beginFill开始填充颜色,endFill结束填充。
最终绘制成一个矩形。
我们再来看一个用直线绘制圆形的例子。
为了让直线绘制圆形,我们通过帧,每帧更新一点图形,实际上我们绘制的圆形是由直线段构成的。
我们来看具体的代码。
首先设置帧速frameRate为60,就是每秒钟更新60个画面。
然后我定义了2个变量Max_Angle和Min_Angle,设置最大角度360,最小角度0。
然后r是半径,100。
theta是不断变化的角度值,最小角度值赋给它。
定义了一个点p,Point是为了便于计算引入的一个概念,也是AS3当中的一个类。
Canvas是画布,把它的坐标设在(200,200)上。
接着用c来引用canvas的graphics类的属性,同时把canvas添加到显示列表中。
接着用了Ponit的polar这个方式来计算了Flash 坐标系到迪卡尔坐标系之间的转换,因为我们描述一个圆形的时候用迪卡尔坐标是比较方便的,我们只要知道角度,知道半径就可以描述出来了。
然后把绘制的起点移动到对应半径和角度的点p坐标上,绘制的粗细是5个像素。
然后在舞台中侦听Event.ENTER_FRAME事件,如果每进入一帧的时候运行一下draw 这个侦听函数。
接下来是draw的具体设置,draw是每帧都有执行的,每帧都会通过坐标转换,来转换出一个新的点,然后每次都向这个新的点画一条直线,然后不断递增theta,也就是当前角度值,通过角度不断变化更新坐标点。
然后来看theta的逻辑判断。
如果theta大于等于最大的角度就移除事件侦听器,停止绘画,否则如果最大角度减去最小角度大于等于360度,否则小于的话,就先画到圆心,然后一直画到起点。
ActionScript编程 了解绘图类
ActionScript编程了解绘图类
在Flash中使用ActionScript语言绘制图形,需要通过Graphics类来实现。
Graphics类直接继承了Object类,它具有用于绘制线条、绘制形状和填充颜色的属性和方法。
对于这些绘图的方法,大致可以分为两类:一类是定义绘图样式的方法;另一类是用于绘制和清除图形的方法。
Graphics类包括两类有关样式的方法,即线条样式和填充样式,其方法详细介绍如表16-1所示。
表16-1 Graphics类的绘图样式方法
Graphics类包含两类有关绘图的方法,即绘制线条和绘制形状,其方法详细介绍如表16-2所示。
表16-2 Graphics类的绘制图形方法
通常来讲,要使用类的属性、方法和事件,首先必须创建该类的实例,但Graphics类不允许用户自己来创建实例。
如果要使用Graphics 类的方法,而是创建Sprite、Shape或MovieClip的实例,因为每个Sprite、Shape和MovieClip对象都具有一个Graphics属性,这样显示对象就具有Graphics属性,从而通过该属性就可以调用绘制图形的方法。
如果只是在舞台中绘制简单的图形,可以使用Shape实例,该实例的性能优于其它用于绘制的显示对象,因为它不会产生Sprite和MovieClip类中的附加功能的开销;如果想要使绘制的图形具有交互能力,并且该对象还可以能够包含其它显示对象,则可以使用Sprite或MovieClip实例。
ActionScript编程 圆周率的应用
ActionScript编程圆周率的应用作用:提供一个常数,帮助用户计算各种与圆周率π相关的数据。
说明:圆周率是一个在数学及物理学中普遍应用的常数,其定义来源于圆形周长与直径的比率。
在Flash CS4的ActionScript3.0中,提供了Math类的一个公共常量以帮助用户进行与圆周率有关的计算,即Math.PI常量,其值为3.141592653589793,数据类型为Number。
在FlashCS4的编程动画中,Math.PI常量广泛应用于角度和弧度的运算中。
角度是数学中衡量角大小的一种单位,其原理是将圆形的周长划为360份,每一份所对应的角为1度。
在Flash CS4的界面操作中,【变形】面板中计算对象旋转的角度,使用的单位就是角度。
弧度也是数学中衡量角大小的单位,其主要用于解析几何中。
假设一个圆的半径为r,则圆的周长为2πr,因此这个圆周的弧度应为2π。
以这个圆周的圆心为公共端点,辐射出两条射线的角,都可以用角在这个圆周中切出的圆弧长度来表示角度的大小。
角度和弧度之间可以相互转换,其方法如下所示。
angle=radian*180/Math.PI;radian=angle*Math.PI/180;在上面的代码中,各关键字如下所示。
●angle 角度值。
其单位为度(°)●radian 弧度值。
弧度通常不标注单位●Math.PI 公共常量,等于3.141592653589793在ActionScript3.0中,只有DisplayObject类的rotation属性使用的角度单位为度,其他描述角度的单位均为弧度。
示例:根据角度和弧度的换算公式,可以轻松编写出以角度或弧度的值为参数的转换函数,如下所示。
function aTor(angle:Number):Number{return angle*(Math.PI/180);}function rToa(radian:Number):Number{return radian*(180/Math.PI);}调用以上函数,并将要转换的值输入为函数的参数,即可对角度或弧度进行转换。
如何使用AS3.0代码给你的Flash课件添加画圆功能
如何使用AS3.0代码给你的Flash课件添加画圆功能很多绘图软件都有绘制圆形的功能,如photoshop、Flash等。
打开这些软件,点击绘制工具,在舞台或幕布上拖到鼠标就会绘制出一个圆形。
在我们的Flash课件中,有时候可能也需要绘制圆形,例如数学课件,或者如果你想用圆形来标注知识点。
今天,我们就来讨论如何使用Flash ActionScript3.0代码来实现圆的绘制。
一、绘制圆的过程分析使用鼠标绘制圆,需要两个工作:一是按下鼠标;二是拖动鼠标。
当你按下鼠标的时候,你就确定了圆心的位置,而拖到鼠标就是确定圆的半径,有了圆形和半径就能绘制出圆了。
可能有人会问:如何确定半径的大小呢?就是从按下鼠标的位置到拖动后鼠标位置的距离。
如下图:求这个半径要使用勾股定理。
二、代码算法分析按下鼠标,我们使用MouseEvent.MOUSE_DOWN事件,这时候你需要记录下鼠标的坐标值,所以你要声明两个Number类型的变量。
拖到鼠标,我们使用MouseEvent.MOUSE_MOVE事件,在处理函数里调用ActionScript绘图API来绘制圆形。
绘制圆要用到drawCircle()方法。
该方法有三个参数:圆心的x坐标、y坐标和半径。
前两个参数已经确定了,第三个参数需要运用Math类中的sqrt()方法来计算:vx=Math.sqrt((mouseX-dx)*(mouseX-dx)+(mouseY-dy)*(mo useY-dy));三、附加功能本实例除了绘制圆形,还添加了绘制圆心和半径的功能。
绘制圆心也就是绘制一个以鼠标按下位置为圆心和一个固定半径的实心圆。
绘制半径我们还需要添加一个MouseEvent.MOUSE_UP事件,当鼠标松开时,在鼠标按下位置和松开位置之间绘制一条直线。
Action Script 3.0 绘制形状
Action Script 3.0 绘制形状ActionScript 3.0中提供了用于绘制常见形状(如圆形、椭圆形、矩形以及圆角矩形)的方法,它们是Graphics类的drawCircle()、drawEllipse()、drawRect()和drawRoundRect()方法。
这些方法可用于代替lineTo()和moveTo()方法。
但是在调用这些方法之前,仍然需要指定线条和填充样式。
1.绘制圆形因为Flash采用简化、单一控制点的Bezier(贝塞尔)计算方式,至少需要用8段线创建圆,才能使圆形看起来更加完美。
为了绘制圆的每一段所做的计算,需要很多数学运算和代码。
然而,Graphics类提供了一个drawCircle()方法,可以大幅减化圆的绘制。
drawCircle()方法只需要接受以下三个参数:●x 圆心的X坐标。
●y 圆心的Y坐标。
●radius 圆的半径。
在调用drawCircle()方法之前,必须通过调用lineStyle()、lineGradientStyle()、beginFill()、beginGradientFill()或beginBitmapFill()方法来设置线条样式或填充样式。
例如,指示名称为myRound的Shape对象绘制一个蓝色边框线的红色圆形,其中心点坐标为(250,250),半径为100,代码如下所示。
var myRound:Shape = new Shape();//创建名称为myRound的Shape对象myRound.graphics.lineStyle(1,0x0000FF);//设置线条粗细和颜色myRound.graphics.beginFill(0xff0000);//设置填充颜色为红色myRound.graphics.drawCircle(250,250,100);//绘制圆形,其中心点坐标为(250,250),半径为100myRound.graphics.endFill();//结束样式addChild(myRound)//将myRound实例加入到显示列表2.绘制椭圆与绘制圆形相比,绘制椭圆更加复杂。
ActionScript编程 绘制特殊图形
ActionScript编程绘制特殊图形说明:使用Graphics对象的drawPath()方法可以提交一系列命令以绘制特殊的图形。
该方法使用矢量数组将moveTo()、lineTo()和curveTo()绘图命令合并在一个调用中,并通过参数将这些绘图命令与x和y坐标值对以及绘图方向结合起来。
drawPath()方法的一般形式如下所示。
myShape.graphics.drawPath(commands,data,winding);drawPath()方法可以接受以上3个参数,其详细介绍如下所示。
●commands 一个由整数构成的矢量,表示由GraphicsPathCommand类定义的绘图命令。
GraphicsPathCommand类将绘图命令映射到此矢量数组的数字标识符上,其详细介绍如表16-3所示。
●data 一个由数字构成的矢量,其中的每一对数字将被视为一个坐标位置(一个x, y对)。
x和y坐标值对不是Point对象;data矢量是一系列数字,其中的每个由两个数字构成的组表示一个坐标位置。
●winding 使用GraphicsPathWinding类中定义的值指定缠绕规则,它的值包括GraphicsPathWinding.EVEN_ODD(建立奇偶缠绕类型)和GraphicsPathWinding.NON_ZERO(建立非零缠绕类型)。
drawPath()方法使用浮动计算,因此形状的旋转和缩放更准确,可以获得更好的效果。
但是,通过使用drawPath()方法提交的曲线在与lineTo()和curveTo()方法结合使用时,可能会存在小的子像素对齐误差。
用drawPath()方法在进行填充和绘制线条时,还有一些与其它方法不太相同的规则,如下所示。
●在应用填充以呈现路径时,不要呈现少于3个点的子路径,以及隐式闭合未闭合的子路径(即结束点不等于起始点)。
●在应用笔触以呈现路径时,子路径可以由任何数量的点组成,以及从不隐式闭合子路径。
FLASH软件编辑界面下舞台上元件的坐标和实际在actionscript
(原创)Flash的坐标系统详解:FLASH软件编辑界面下舞台上元件的坐标和实际在actionscript(以下简称“AS”)中测试中不一样是初学者经常会碰到的问题。
大家不免产生疑惑,为什么FLASH的坐标时而准确,时而不准确呢?其实这是大家不了解FLASH计算坐标方式的缘故,其实FLASH中软件操作界面的舞台上计算坐标和AS中计算坐标的的基准点并不一致。
接下来我们先在试验中求证,然后再推算出FLASH坐标的运算方式。
首先我们在场景里画一个圆形,然后F8转化为影片剪辑,转化时有一个小的细节需要注意一下(一些使用者都忽视了他),在类型选择旁边更有一个“注册”选项,其实这里也是能够选择的,并不是个只供“查看”的属性,我们能够试一下,九个小方格都是能够点击的,我们选择左上角的小方格建立一个MC。
这个时候我们会发现我们建立的MC十字架在MC左上角,圆圈在元件中央,这里的十字架,我们称之为注册点。
也就是说我们建立了一个MC,他的注册点是左上角。
(也能够尝试选择不同的方格,结果证实选中的方格即代表注册点的位置,当然你也可以通过双击进入元件内部把元件把元件放在距离十字心更不规则的位置)。
让我们再来观察以下信息面板,你会发现它也有一个九宫格,但是只有中心和左上角可以选择,其他点为灰色,这时候点击九宫格的左上角的那个点。
然后给这个影片剪辑命名为a_mc,在属性面板或者信息面板输入他的坐标是0,0。
然后你会发现a_mc的位置处于舞台的左上角。
如图所示然后我们打开动作面板,在面板中输入如下代码:trace("a_mc._x="+a_mc._x);trace("a_mc._y="+a_mc._y)我们成功在输出面板中得到了a_mc._x=0a_mc._y=0软件操作界面中的结果和AS运算的结果是一样的。
这时我们把信息面板中九宫格的中间的那个点点选上,你会发现中间选中的那个点变黑了,左上角的点又变成了白色,如图所示这时候我们发现舞台的坐标立马就变成了(x:43.5 y:43.5),那么圆的宽和高都是87,它的坐标正好等于圆的一半。
ActionScript编程 匀速圆周运动
ActionScript 编程 匀速圆周运动作用:控制显示对象在不变更速度的情况下,以指定的时间改变加速度的方向,围绕圆周进行运动。
说明:在之前的章节中已介绍过使用ActionScript 模拟匀速直线运动的方法。
在匀速运动中,匀速直线运动以外,还包括匀速圆周运动,即在同一平面内,物体以0的加速度围绕一个中心点移动,在任意时间段中,物体到中心点的距离不变。
在已知的一个平面中,匀速圆周运动的物体,其运动的轨迹是圆形。
因此,研究匀速圆周运动的物体坐标,可以从解析几何中圆的方程着手。
在解析几何中,圆是由距离某点长度向同的点的集合。
根据三角函数与坐标轴的关系,可以使用一个二元二次方程来标示圆上所有点的集合,如下所示。
22020)()(r y y x x =-+-在上面的公式中,各表达式的含义如下所示。
● x 点的水平坐标● y 点的垂直坐标●0x 圆心(中心点)的水平坐标 ● 0y 圆心(中心点)的垂直坐标● r 点到圆心(中心点)的距离虽然在平面直角坐标系中,上面的公式可以表示任意的圆,但是不符合通过坐标的值设置点到圆心的距离。
因此,如果需要将点设置到圆上,需要将该二元二次方程转换为两个参数方程,将点的坐标(x ,y )分别作为方程的值,如下所示。
θcos 0r x x +=θsin 0r y y +=在上面的公式中,θ值是圆周中任意角的度数,其值的范围为0°到360°或0到2π。
根据上面的参数方程,可以方便地将坐标赋给对象,将其控制在某个圆上。
示例:了解了圆上任意一点的坐标参数方程后,就可以直接将圆上某个点的参数代入参数方程中。
而控制某个物体围绕一个点进行匀速圆周运动,则需要通过计时函数,定时设置一下物体与坐标轴之间的旋转角度,使其按照固定的递增量增长。
例如,通过圆的参数方程制作一个战斗机围绕地球旋转飞行的动画。
首先,导入战斗机和地球的素材图像,分别将其制作为影片剪辑元件,如图17-7所示。
JavaScript+html5canvas制作的圆中圆效果实例
JavaScript+html5canvas制作的圆中圆效果实例本⽂实例讲述了JavaScript+html5 canvas制作的圆中圆效果。
分享给⼤家供⼤家参考,具体如下:运⾏效果截图如下:具体代码如下:<!DOCTYPE html><html><head><title>demo</title><style type="text/css">#canvas {background:#F2F2F2; height:500px; height:500px; margin-top:100px; margin-left:200px;}</style></head><body><canvas id="canvas" width="500px" height="500px" ></canvas></body><script type="text/javascript">(function() {var dyl = {};dyl.getDom = function(id) {return document.getElementById(id);}dyl.getContext = function(canvasID) {var canvas = this.getDom(canvasID);if(!canvas) {return null;}return canvas.getContext("2d");}if(!window.dyl) {window.dyl = dyl;}})();cache = {};cache.context = dyl.getContext('canvas');// 每个圈的圆个数控制cache.scaleNmb = 6;cache.createColor = function() {var color = "rgb(";color += Math.round(Math.random()*255);color += ",";color += Math.round(Math.random()*255);color += ",";color += Math.round(Math.random()*255);color += ")";return color;};cache.draw = function() {cache.context.fillRect(-10, -10, 20, 20);for(var i=1; i<10; i++) {cache.context.save();for(var j=0; j<cache.scaleNmb*i; j++) {cache.context.rotate(Math.PI*2/(cache.scaleNmb*i));cache.context.fillStyle = cache.createColor();cache.context.beginPath();cache.context.arc(0, 20*i, 5, 0,Math.PI*2, true);cache.context.closePath();cache.context.fill();}cache.context.restore();}};cache.init = function() {cache.context.translate(250, 250);cache.draw();};cache.init();</script></html>更多关于js特效相关内容感兴趣的读者可查看本站专题:《》、《》及《》希望本⽂所述对⼤家JavaScript程序设计有所帮助。
在Flash MX中使用ActionScript语言画圆
在Flash MX中使用ActionScript语言画圆
张健敏;董慎行
【期刊名称】《物理通报》
【年(卷),期】2004(000)012
【摘要】不少中学物理老师,在使用Flash MX制作圆周运动、带电粒子在磁场
中的运动等与圆有关的课件时,无法使用ActionScript语言(以下简称AS)画真正的圆.经过总结,笔者发现他们采用的方法实质都是一样的,就是使用AS中的“MovieClip.cureTO”命令来实现,区别只是在使用时采用了不同的分段方法,以至于无法画出真正的圆.
【总页数】2页(P28-29)
【作者】张健敏;董慎行
【作者单位】苏州大学物理科学与技术学院,江苏,苏州,215006;苏州大学物理科学
与技术学院,江苏,苏州,215006
【正文语种】中文
【中图分类】G4
【相关文献】
1.Flash中ActionScript语言的使用分析 [J], 周俊平
2.FlashMX ActionScript详解—ActionScript入门 [J], 柳叶吹风
3.用FlashMX中的ActionScript模拟迈克尔逊干涉仪 [J], 张敏锐
4.Flash MX动画制作--Flash ActionScript入门 [J],
5.用FLASH MX2004的ActionScript脚本语言开发智力拼图游戏 [J], 姚坚
因版权原因,仅展示原文概要,查看原文内容请购买。
用ActionScript画数学函数图象_数学论文.
用ActionScript画数学函数图象_数学论文文章摘要:falsh5虽是专业的网页动画制作软件,但是利用它制作多媒体课件毫不逊色。
特别是它的ActionScript具有很强的延伸性,功能非常强大,只要巧妙的运用就会产生出神奇的效果。
下面介绍利用ActionScript绘制数学函数图象的方法。
ActionScript中没有画点和画线的动作、函数、方法,如何实现绘制曲线呢?我们可以建立一个只有一个实心圆(半径2像素左右)的电影剪辑符号,实例化后利用动作duplicateMovieClip复制若干同样的电影剪辑作为组成图象的点,设置每个电影剪辑的_x、_y属性,使其成为图象上的点的横、纵坐标,这些点(电影剪辑)就构成了所要绘制的函数图象。
例如画y=sin x x∈[-2π,2π]的图象。
新建一个文件,创建一个新电影剪辑符号:用椭圆工具绘制一个圆(边线与填充色相同),利用info面板设置W:2px,H:2px,利用Align面板使圆心位于符号编辑区的中心。
回到Scene编辑环境,把刚刚建立的符号实例化,并在Instance面板中为其使命名为p,并把它放在适当的位置作为坐标系的原点,如(200,150),在时间线第一帧的Frame Actions面板里输入下面语句:for (j=-Math.ceil (2*Math.PI*32);j<=Math.ceil(2*Math.PI*32);j++) {duplicateMovieClip ("p","p"+j, j);x = j/32;y = Math.sin (x);setProperty ("p"+j, _x, 200+j);setProperty ("p"+j, _y, 150-32*y);}执行Control菜单中的命令:TestScene,所要画的函数图象显示在屏幕上。
ActionScript编程 使用按钮组件
ActionScript编程使用按钮组件作用:按钮(Button)组件作为触发事件的事件源,为用户提供各种交互性的体验。
说明:Button组件是一个可调整大小的矩形按钮,用户可以通过鼠标或空格按下该按钮以在应用程序中启动操作。
该组件可以显示文本标签、自定义图标,或者同时显示两者。
Button组件是许多表单和Web应用程序的基础部分。
每当需要让用户启动一个事件时,都可以使用按钮实例。
例如,提交表单中必不可少的“提交”按钮。
使用new运算符和Button()构造函数可以创建Button组件的实例,但在创建之前必须要导入Button类,如下所示。
import fl.controls.Button;//导入Button类var btn:Button = new Button();Button实例具有emphasized属性,其值为一个布尔值,指示当按钮处于弹起状态时,Button组件周围是否绘有边框。
如果为true,表示当按钮处于弹起状态时其四周带有边框;否则不带有边框。
默认值为false,即不带有边框。
emphasized属性的使用方法如下所示:btn.emphasized = true;除了Button()构造方法外,Button实例还具有一个getStyleDefinition()方法,用于检索当前组件的默认样式映射。
样式映射包含适合组件的类型,具体取决于组件使用的样式。
该方法返回默认样式对象。
Button组件通常与事件处理函数方法关联,该方法将侦听click事件,并在click事件被调度后执行指定任务。
当用户单击启用的按钮时,该按钮调度click和buttonDown事件。
即使按钮尚未启用,它也可以调度其它事件,包括:mouseMove、mouseOver、mouseOut、rollOver、rollOut、mouseDown和mouseUp。
例如,侦听btn按钮组件的鼠标单击事件,如下所示。
btn.addEventListener(MouseEvent.CLICK,onClick);在应用程序中可以启用或者禁用按钮。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
ActionScript编程绘制圆形
说明:
因为Flash采用简化、单一控制点的贝塞尔(Bezier)计算方式,所以绘制一个较完美的圆形至少使用8条线段,并且需要为了每一条线段做出大量的数学运算和代码,然而,Graphics对象提供了一个drawCircle()方法,可以大幅减化圆形绘制的步骤。
drawCircle()方法的一般形式如下所示。
myShape.graphics.drawCircle(x,y,radius);
drawCircle()方法可以接受以上3个参数,其详细介绍如下所示。
●x 圆心的x坐标(以像素为单位)。
●y 圆心的y坐标(以像素为单位)。
●radius 圆的半径(以像素为单位)。
在调用drawCircle()方法之前,必须通过调用lineStyle()、lineGradientStyle()、beginFill()或beginGradientFill()方法来定义线条样式或填充样式。
与绘制圆形相比,绘制椭圆更加复杂。
椭圆是由两个半径以适当角度相交定义出来的,而不是用单一、均等的半径。
两个半径分别称为主半径和次半径,有时也称为x半径和y半径。
Graphics对象的drawEllipse()方法可以绘制椭圆,其一般形式如下所示。
myShape.graphics.drawEllipse(x,y,width,height);
drawEllipse()方法可以接受以上4个参数,其详细介绍如下所示。
●x 椭圆中心的x坐标。
●y 椭圆中心的y坐标。
●xRadius 椭圆在x方向的半径(主半径)。
●yRadius 椭圆在y方向的半径(次半径)。
示例:
使用名称为myShape的Shape对象绘制一个红色边线的黄色圆形,其中心点坐标为(250,250),半径为150px,如下所示。
var myShape:Shape = new Shape();
myShape.graphics.lineStyle(5,0xFF0000);
//定义圆形边线的大小和颜色
myShape.graphics.beginFill(0xFFFF00);
//设置圆形的填充颜色为红色
myShape.graphics.drawCircle(250,200,150);
//绘制圆形
myShape.graphics.endFill();
addChild(myShape);
使用名称为myShape的Shape对象绘制一个椭圆形,该椭圆形的中心点为(200,150)、主半径为300px、次半径为200px,如下所示。
var myShape:Shape = new Shape();
myShape.graphics.lineStyle(3,0xFF0000);
//定义线条的大小和颜色
myShape.graphics.beginFill(0xFFFF00);
//定义椭圆形的填充颜色为黄色
myShape.graphics.drawEllipse(100,100,300,200);
//绘制椭圆形
myShape.graphics.endFill();
addChild(myShape);。