Flash与数学:椭球面
在平面的时候,圆可以认为是椭圆一个特例,而球面也可以认为球椭球面一个特例,但是两者依旧会存在一些差别。这一些差别会产生不同的形状,查阅了一些关于椭球面的资料很皮毛了解一些。
椭球体的方程表示: x2 /a2+y2/b2+z2/c2=1;
参数方程:
(该图片来源于网络)
通常(a≥b≥c>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 的值会产生不一样的变化,复制的数也改变一下 会产生令人意想不到的美感在这里。对这方面的知识来讲,仅仅冰山一角,因为涉及的高等数学还是很多需要去理解,而这一部分个人而言依旧是很空白,只能查询一些资料来看。但是个人会继续探讨完善这一部分知识。鉴
相关文档:
Main.cpp (Win/*nix)
#include "FlexSecurityBox.h"
int main(int argc, char ** argv) {
char * address;
short port;
if (argc == 2)
{
address = "0.0.0.0";
port = atoi(argv[1]);
} else if (argc == 3)
{
address = argv[1];
port = atoi(argv[2]);
} else
{
printf("Y ......
Want play some .SWF files, so download "Adobe flash player for IE", then install successfully, but it is a plug, can't open the swf files independently, by the other word, I just can play them in IE, but I don't like so.
At first, I think there is a .exe player can be executing, so locate C:\windo ......
Ubuntu下装完Adobe的Flash插件后,浏览器里可以播放Flash动画了。但是还存在一个问题就是汉字无法正确显示,显示为方格
解决办法:
修改这个配置文件
/etc/fonts/conf.d/49-sansserif.conf
把其中所有的字体名替换为中文字体名即可,我这里用的是“微软雅黑”和“Consolas“。
<?xml version=" ......