WEB开发网
开发学院图形图像Flash Flash与3D编程探秘(五)- 摄像机旋转和移动 阅读

Flash与3D编程探秘(五)- 摄像机旋转和移动

 2008-11-12 11:51:23 来源:WEB开发网   
核心提示: 移动和旋转角度的图解需要注意的是,当你首先旋转摄像机,Flash与3D编程探秘(五)- 摄像机旋转和移动(4),然后向后或者向前移动摄像机,那么摄像机是沿着摄像机旋转过后的角度运动的,下面我们就看一个应用的例子:定点旋转摄像机,WS前后移动摄像机,至于移动量和物体到现在摄像机的距离,我们一

Flash与3D编程探秘(五)- 摄像机旋转和移动

移动和旋转角度的图解

需要注意的是,当你首先旋转摄像机,然后向后或者向前移动摄像机,那么摄像机是沿着摄像机旋转过后的角度运动的,至于移动量和物体到现在摄像机的距离,我们一样可以使用三角函数得到(三角函数!Nice!)。下面我们就看一个应用的例子:

定点旋转摄像机,WS前后移动摄像机,AD旋转

动画制作步骤:

1. 重复前面的3步。

//constants
varMAX_OBJ=100;
varPI=3.1415926535897932384626433832795;
varDISTANCE_Z=20;                         //thezdistancetoyourcamera
//sameasusual
varorigin=newObject();
origin.x=stage.stageWidth/2;
origin.y=stage.stageHeight/2;
origin.z=0;
varscene=newSprite();
scene.x=origin.x;
scene.y=origin.y;
this.addChild(scene);
varcamera=newObject();
camera.x=0;
camera.y=0;
camera.z=0;
camera.panning=0;
varmovement=0;
varfocal_length=300;
varpan_left;
varpan_right;
varmove_forward;
varmove_backward;
//nowcreatelotsofballsaroundyourcamera
for(vari=0;i<MAX_OBJ;i++)
{
  varball=newSphere();
  ball.angle=Math.random()*(0-PI*2)+PI*2;        //thisistherotateangleonthexzplane
  ball.dist_center=(MAX_OBJ-i)*DISTANCE_Z;       //thezdistancetoyourcamera
  ball.x_3d=Math.cos(ball.angle)*ball.dist_center;    //thenweusetrigtogetx
  ball.z_3d=Math.sin(ball.angle)*ball.dist_center;     //andz
  ball.y_3d=Math.random()*(-300-300)+300;       //nowputtheballatrandomy
  scene.addChild(ball);                        //addtheballtothecollection
}

上一页  1 2 3 4 5 6 7  下一页

Tags:Flash 编程 探秘

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