本文主要是介绍Flash 与数学 心动玫瑰线,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow
也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!
欢迎大家来到这里,在这里,我要向大家宣告一件事情,我将会送给你们每一个人一朵玫瑰,请好好保管好它,因为它里面包含我的温暖。 我相信你会喜欢上!
------ 夏天的树人
马上送上
第一朵玫瑰:
第二朵玫瑰:
第三朵玫瑰:
第四朵玫瑰:
第五朵玫瑰:
第六朵玫瑰:
第七朵玫瑰:
原来我很想送给你第8,第九朵玫瑰,不过你一定会告诉我,这不是玫瑰,而是一个心动。
我们要知道,玫瑰花总是带着一阵阵的方香,会引来无数的蝴蝶和蜜蜂,正因为如此,我们还是把它送给你最爱的人--玫瑰花香。
花香制作材料:也许你会问,我现在就是要制作这种花香,那么我现在就送给你一道配方。我
配方材料:需要一条公式:玫瑰线的公式
玫瑰线,极坐标方程
p=a *sin(n*angle)//n为花瓣。n 可以是奇数,也可以是偶数
p=a *cos(n*angle)//n为花瓣
准备好这个材料,我们开始熬我们的药了。
初步的绘制线的办法,如下
- //玫瑰线绘制
- import flash.display.Sprite;
- import flash.geom.Point;
- internal class Rose extends Sprite
- {
- public function Rose()
- {
- this.graphics.moveTo(0,0);
- }
- //创建2D的玫瑰线
- public function CreatRose(r:Number,num:int):void
- {
- var rad:Number=1*Math.PI/180;//角度
- for (var j:int=0; j<=360; j++)
- {
- var len:Number=r*Math.sin(num*rad*j);
- var point:Point=Point.polar(len,rad*j);
- drawPoint(point);
- }
- }
- //绘制玫瑰线
- public function drawRose(r:Number,angle:Number,num:int):void
- {
- var len:Number=r*Math.sin(num*angle);
- var point:Point=Point.polar(len,angle);
- drawPoint(point);
- }
- //描点
- private function drawPoint(point:Point):void
- {
- this.graphics.lineStyle(1);
- this.graphics.lineTo(point.x,point.y);
- }
- }
我们采用,描点法,采用极坐标法,来实现我们的点绘制;
- //描点
- private function drawPoint(point:Point):void
- {
- this.graphics.lineStyle(1);
- this.graphics.lineTo(point.x,point.y);
- }
总的药方在这里:
- package
- {
- //玫瑰线,极坐标方程
- //p=a *sin(n*angle)//n为花瓣
- //p=a *cos(n*angle)//n为花瓣
- import flash.display.Sprite;
- import flash.events.*;
- public class Main extends Sprite
- {
- private var obj:Rose;
- private var angle:Number=0;
- public function Main()
- {
- init();
- }
- private function init():void
- {
- obj=new Rose();//创建玫瑰线对象
- obj.CreatRose(200,2);
- obj.x=stage.stageWidth/2;
- obj.y=stage.stageHeight/2;
- addChild(obj);
- //addEventListener(Event.ENTER_FRAME,Run);
- }
- // private function Run(event:Event):void
- // { angle++;
- // if(angle>360*8)
- // { angle=0;
- // removeEventListener(Event.ENTER_FRAME,Run);
- // }
- // else
- // {
- // //angle=(angle> 360 ? 0:angle++);
- // obj.drawRose(200,angle,8);
- // }
- //
- // }
- }
- }
- //玫瑰线绘制
- import flash.display.Sprite;
- import flash.geom.Point;
- internal class Rose extends Sprite
- {
- public function Rose()
- {
- this.graphics.moveTo(0,0);
- }
- //创建2D的玫瑰线
- public function CreatRose(r:Number,num:int):void
- {
- var rad:Number=1*Math.PI/180;//角度
- for (var j:int=0; j<=360; j++)
- {
- var len:Number=r*Math.sin(num*rad*j);
- var point:Point=Point.polar(len,rad*j);
- drawPoint(point);
- }
- }
- //绘制玫瑰线
- public function drawRose(r:Number,angle:Number,num:int):void
- {
- var len:Number=r*Math.sin(num*angle);
- var point:Point=Point.polar(len,angle);
- drawPoint(point);
- }
- //描点
- private function drawPoint(point:Point):void
- {
- this.graphics.lineStyle(1);
- this.graphics.lineTo(point.x,point.y);
- }
- }
到目前为此,你应该掌握了这种办法,现在我们继续打开我们的法宝去实现另外一个一种配置方案:
我相信你会喜欢我提供的方法:通过动画的方式来进行
- //绘制玫瑰线
- public function drawRose(r:Number,angle:Number,num:int):void
- {
- var len:Number=r*Math.sin(num*angle);
- var point:Point=Point.polar(len,angle);
- drawPoint(point);
- }
- package
- {
- //玫瑰线,极坐标方程
- //p=a *sin(n*angle)//n为花瓣
- //p=a *cos(n*angle)//n为花瓣
- import flash.display.Sprite;
- import flash.events.*;
- public class Main extends Sprite
- {
- private var obj:Rose;
- private var angle:Number=0;
- public function Main()
- {
- init();
- }
- private function init():void
- {
- obj=new Rose();//创建玫瑰线对象
- //obj.CreatRose(200,2);
- obj.x=stage.stageWidth/2;
- obj.y=stage.stageHeight/2;
- addChild(obj);
- addEventListener(Event.ENTER_FRAME,Run);
- }
- private function Run(event:Event):void
- {
- angle++;
- if (angle>360*2)
- {
- angle=0;
- removeEventListener(Event.ENTER_FRAME,Run);
- }
- else
- {
- obj.drawRose(200,angle,2);
- }
- }
- }
- }
- //玫瑰线绘制
- import flash.display.Sprite;
- import flash.geom.Point;
- internal class Rose extends Sprite
- {
- public function Rose()
- {
- this.graphics.moveTo(0,0);
- }
- //创建2D的玫瑰线
- public function CreatRose(r:Number,num:int):void
- {
- var rad:Number=1*Math.PI/180;//角度
- for (var j:int=0; j<=360; j++)
- {
- var len:Number=r*Math.sin(num*rad*j);
- var point:Point=Point.polar(len,rad*j);
- drawPoint(point);
- }
- }
- //绘制玫瑰线
- public function drawRose(r:Number,angle:Number,num:int):void
- {
- var len:Number=r*Math.sin(num*angle);
- var point:Point=Point.polar(len,angle);
- drawPoint(point);
- }
- //描点
- private function drawPoint(point:Point):void
- {
- this.graphics.lineStyle(1);
- this.graphics.lineTo(point.x,point.y);
- }
- }
配方完成
好,现在的配方已经完成了。马上拿给它送给你心爱的人。
接下来我们可以添加我们所希望的滤镜进行润色。然后就可以变成了上面的图案,至于怎样?这里就留一个关子
发挥你们想象空间。
给我老师的人工智能教程打call!http://blog.csdn.net/jiangjunshow
这篇关于Flash 与数学 心动玫瑰线的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!