Flash 与数学:星形线
今晚我们来玩玩这种线绘制,星形线。 在大学的里面解析几何当中,把这种曲线叫做四尖点星形线。由于它的形状如星星 称上这个名称也不无道理,看到这种线的时候,你是否会许个愿望呢?一起来吧
星形线公式:
x=a*cos3A
y=a*sin3A
公式很简单,A的角度可以是正无穷 和负无穷之间,(a可以理解为半径) 但是我的做法,理解他为0-360已经足够了。也就是说他旋转一圈。通过绘制这条线,同样我们加入一些线的动画,这样做的好处是增加一些动感性。
程序的思路很简单,我们就按他的提供的公式设计一个绘图程序,它会按顺时针来进行绘制,这是因为flash 的坐标系和我们传统的数学坐标系有区别,顺时针所转换的角度是正的,而传统的则是负的。可以去了解一些这两种坐标系区别。
我们使用描点的方式来进行绘制线,是在flash 里面一个很常用的手法。而你看到的图像,我们可以假设认为是360度描点所得的结果,有兴趣可以继续深入。
下面是代码:
package
{
//星形线动画
// x=a*cos3A
// y=a*sin3A
// 写于2010年4月11日
import flash.display.Sprite;
import flash.events.*;
public class Main extends Sprite
{
private var pen:Sprite=new Sprite();
private var lineMc:Sprite=new Sprite();
private var angle:int=-1;//角度
private var centerX:Number=stage.stageWidth/2;//中心点x位置
private var centerY:Number=stage.stageHeight/2;//中心点y位置
public function Main()
{
init();
}
private function init():void
{
addChild(pen);
addChild(lineMc);
//描绘十字坐标
pen.graphics.lineStyle(1);
pen.graphics.moveTo(centerX,centerY);
pen.graphics.lineTo(centerX,0);
pen.graphics.moveTo(centerX,centerY);
pen.graphics.lineTo(centerX*2,centerY);
pen.graphics.moveTo(centerX,centerY);
pen.graphics.lineTo(centerX,centerY*2);
pen.graphics.moveTo(centerX,centerY);
pen.graphics.lineTo(0,centerY);
addEventListener(Event.ENTER_FRAME,Run);
}
private function Run(event:Event):void
{
lineMc.graphics.clear();
if (angle==-1)
{
var px:Number=centerX+200*Math.pow(Math.cos(angl
相关文档:
这个程序是从2.0 改过来的,是网上一个程序,只是修改了一些内容,变成这种情况。这几天没有写程序,有点懒惰。于是今天又补充这种不错的应用。这个程序采用的是绘图API 最基本的绘制线,但是对其进行一些修改,使他产生上面的效果。漂亮不?呵呵,我都觉几漂亮,
作为绘图API 一个内容补充吧。
好,闲话不说。看 ......
[原理]
经典物理学认为,物体越过势垒,有一阈值能量;粒子能量小于此能量则不能越过,大于此能量则可以越过。例如骑自行车过小坡,先用力骑,如果坡很低,不蹬自行车也能靠惯性过去。如果坡很高,不蹬自行车,车到一半就停住,然后退回去。
  ......
当初看到这些线的时候 是在一个数学的网上,今天也动手弄了一个心形线。内容其实很简单,没有什么花俏的东西,但是利用极坐标方程可以结合flash 当中,同样也会使用极坐标的方程绘制玫瑰线。由于能力有限,还是一步步来吧。
今天学了这个东西。我们把公式粘贴上,都可以网上搜索到
//四种方向心形线
r=a* ......