Flash与数学:椭球面

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

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

参数方程:

椭球(该图片来源于网络)

通常(abc>0) (0≤θ≤2π,0≤φ≤π)

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

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

概念

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

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

package { import flash.display.Sprite; import flash.events.*; import flash.geom.PerspectiveProjection; public class Main extends Sprite { private var a:int=200;//用于椭圆的球体 private var b:int=80; private var c:int=60; private var centerX:Number=stage.stageWidth/2; private var centerY:Number=stage.stageHeight/2; private var contain:Sprite=new Sprite();//创建容器 public function Main() { addChild(contain); contain.x=centerX; contain.y=centerY; createEllipsoid(); root.transform.perspectiveProjection.fieldOfView=120;//初始化透视角度 addEventListener(Event.ENTER_FRAME,Run); } //创建椭球体 private function createEllipsoid ():void { for (var i:int=0; i<180; i+=20) { //纬度 for (var j:int=0; j<360; j+=20) { //经度 var ball:Ball=new Ball(); contain.addChild(ball); ball.x=a*Math.sin(i*Math.PI/180)*Math.cos(j*Math.PI/180); ball.z=b*Math.sin(i*Math.PI/180)*Math.sin(j*Math.PI/180); ball.y=c*Math.cos(i*Math.PI/180); } } } private function Run(event:Event):void { contain.rotationY+=0.3; } } }

生成一些效果:

椭圆球

小结:

更改abc 的值会产生不一样的变化,复制的数也改变一下 会产生令人意想不到的美感在这里。对这方面的知识来讲,仅仅冰山一角,因为涉及的高等数学还是很多需要去理解,而这一部分个人而言依旧是很空白,只能查询一些资料来看。但是个人会继续探讨完善这一部分知识。鉴于flash cs4的3d 效果并一定很出色,可以尝试通过一些flash 3D引擎进行模拟,说不定会有不错的效果。这一部分交给有心人。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值