Flash与数学:球体曲面 (2)
参考了一个源码,大概了解3d球体的做法,借用了球体曲面的参数方程式,我们可以做出这种球面的图片分布效果出来。了解这种球面分布了解到每一张图片倾斜的角度是多少。当初看到这个源码,也让人觉得兴奋,因为他的原理其实不难。了解了数学模型背后的意义时候,大概会明白到这种图片效果是如何制作。主要涉及到角度的分布,和图片数量的分布。当中一些窍门之处都在处理图片角度倾斜,只要知道怎样倾斜。大概就会明白。
下面是一些简化版的清单,初步能够模拟不错的3D球效果。至于这个球体应用一些问题,会继续跟踪下去。
其中photo 是库链接出来的元件。只是一个图片。
package
{
import flash.display.Sprite;
import flash.events.*;
import flash.geom.*;
import flash.display.DisplayObject;
public class Main extends Sprite
{
private var R:int=240;//球体半径
private var centerX:Number=stage.stageWidth/2;
private var centerY:Number=stage.stageHeight/2;
private var contain:Sprite=new Sprite();//创建容器
private var angle:Number=30*Math.PI/180;
private var list:Array=new Array();
private var photoCount:Array=[1,6,10,12,10,6,1];//图片数目
private var angleX:Array=[90,60,30,0,-30,-60,-90];//倾斜的x值
private var angleY:Array=[0,60,36,30,36,60,0];//倾斜的y值
private var speedx:Number=0;
private var speedy:Number=0;
public function Main()
{
addChild(contain);
contain.x=centerX;
contain.y=centerY;
contain.z=300;
createSphere();//创建球体分布
addEventListener(Event.ENTER_FRAME,Run);
stage.addEventListener(MouseEvent.MOUSE_MOVE,onMove);
}
private function createSphere():void
{
for (var i:int=0; i<7; i++)
{
for (var j:int=0; j<photoCount[i]; j++)
{
var ball:Photo=new Photo();
contain.addChild(ball);
list.push(ball);
ball.x=R*Math.sin(i*angle)*Math.cos(j*angleY[i]*Math.PI/180);//球体公式表现
ball.z=R*Math.sin(i*angle)*Math.sin(j*angleY[i]*Math.PI/180);
ball.y=R*Math.cos(i*angle);
ball.rotationX= angleX[i];//偏移角度计算
相关文档:
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 ......
NOR和NAND是现在市场上两种主要的非易失闪存技术。Intel于1988年首先开发出NOR flash技术,彻底改变了原先由EPROM和EEPROM一统天下的局面。紧接着,1989年,东芝公司发表了NAND flash结构,强调降低每比特的成本,更高的性能,并且象磁盘一样可以通过接口轻松升级。但是经过了十多年之后,仍然有相当多的硬件工程师分不清NOR和NAND ......
ScrollPane加载图片:http://flash.9ria.com/viewthread.php?tid=37296&highlight=ScrollPane
SoundChannel控制声音:http://flash.9ria.com/viewthread.php?tid=25745&highlight=Sound
捕获窗体变化事件:http://flash.9ria.com/viewthread.php?tid=7203&highlight=%E6%9C%80%E5%A4%A7%E5%8C%96
加载和卸载 ......
圆在flash 当中的使用,是一种非常实用而且好玩的技术。它优点是简单,容易使用。对于一些不错的效果有很强的实用价值。例如,做一些圆周运动,旋转等都是很经常的做法。我们仅仅需要知道它的参数方程,和一般的方程就能够创造出一些不错的案例。
圆的标准方程式:(x-a)2+(y-b)2=R2
而它的参数方程 ......