WEB开发网
开发学院图形图像Flash Flash与数学:椭球面 阅读

Flash与数学:椭球面

 2010-03-02 00:00:00 来源:WEB开发网   
核心提示:在平面的时候,圆可以认为是椭圆一个特例,Flash与数学:椭球面,而球面也可以认为球椭球面一个特例,但是两者依旧会存在一些差别,这一些差别会产生不同的形状,查阅了一些关于椭球面的资料很皮毛了解一些

在平面的时候,圆可以认为是椭圆一个特例,而球面也可以认为球椭球面一个特例,但是两者依旧会存在一些差别。这一些差别会产生不同的形状,查阅了一些关于椭球面的资料很皮毛了解一些。

椭球体的方程表示: x2 /a2+y2/b2+z2/c2=1;

参数方程:

Flash与数学:椭球面

该图片来源于网络

通常(a≥b≥c>0) (0≤θ≤2π,0≤φ≤π)

a  b  c 分别代表 长轴 中轴  短轴

下面收集一些知识点:截图

Flash与数学:椭球面

查看原图(大图)

然后我们通过编程模拟出一个简单的效果:

其中var ball:Ball=new Ball(); 是通过库链接出来一个普通元件,可以进行添加 修改

   1. package   
   2. {  
   3.   
   4.     import flash.display.Sprite;  
   5.     import flash.events.*;  
   6.     import flash.geom.PerspectiveProjection;  
   7.     public class Main extends Sprite  
   8.     {  
   9.   
  10.         private var a:int=200;//用于椭圆的球体  
  11.         private var b:int=80;  
  12.         private var c:int=60;  
  13.           
  14.         private var centerX:Number=stage.stageWidth/2;  
  15.         private var centerY:Number=stage.stageHeight/2;  
  16.         private var contain:Sprite=new Sprite();//创建容器  
  17.         public function Main()  
  18.         {  
  19.             addChild(contain);  
  20.             contain.x=centerX;  
  21.             contain.y=centerY;  
  22.             createEllipsoid();  
  23.             root.transform.perspectiveProjection.fieldOfView=120;//初始化透视角度  
  24.               
  25.             addEventListener(Event.ENTER_FRAME,Run);  
  26.         }  
  27.          
  28.         //创建椭球体  
  29.         private function createEllipsoid ():void  
  30.         {  
  31.             for (var i:int=0; i<180; i+=20)  
  32.             { //纬度  
  33.                 for (var j:int=0; j<360; j+=20)  
  34.                 {  
  35.                     //经度  
  36.                     var ball:Ball=new Ball();  
  37.                     contain.addChild(ball);  
  38.                     ball.x=a*Math.sin(i*Math.PI/180)*Math.cos(j*Math.PI/180);  
  39.                     ball.z=b*Math.sin(i*Math.PI/180)*Math.sin(j*Math.PI/180);  
  40.                     ball.y=c*Math.cos(i*Math.PI/180);  
  41.                 }  
  42.             }  
  43.   
  44.         }  
  45.           
  46.         private function Run(event:Event):void  
  47.         {  
  48.   
  49.             contain.rotationY+=0.3;  
  50.   
  51.         }  
  52.   
  53.   
  54.   
  55.   
  56.     }  
  57.   
  58.   
  59.   
  60. }  

1 2  下一页

Tags:Flash 数学 椭球

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接