A note about rotation in 3D space.
Special names are given to rotating an object around each of the x, y, and z axes. You may be familiar with these terms which are used in flying an aeroplane, they are pitch, roll and yaw.
Pitch refers to rotating an object around its X axis.
Roll refers to rotating an object around its Z axis.
Yaw refers to rotating an object around its Y axis.
This page on Wikipedia offers some explanation of these, with animated examples. http://en.wikipedia.org/wiki/Aircraft_principal_axes
Making the plane move in 3D space.
You are probably familiar with using the Enter_Frame event in Flash which is used to execute code continuously at the frame rate of a Flash Movie. This is often used to create animated effects in 2D, such as a car moving across the stage. However, with Papervision 3D we have access to pitch, roll and yaw properties of 3D objects, which we can update and change using the Enter_Frame event.
At the end of the previous code, create an Enter_Frame event listener:
addEventListener( Event.ENTER_FRAME, loop);
This event listener will cause the function named loop to run continuously at the frame rate of your Flash Movie.
Immediately after the event listener, add the following function.
function loop(event:Event):void {
plane.yaw(5);
renderer.renderScene(scene, camera, viewport);
}
This function changes the yaw of the plane. It makes it rotate on its y axis by 5 degrees. It then uses the renderer to redraw the scene.
Test the Flash Movie (Ctrl-Enter) or Control - Test Movie and you will now see the plane spinning on its Y axis (yawing). You will also see that the plane disappears as it spins. This is because the plane has only one side, but we will fix this later.
At this point you may want to experiment with the pitch and roll properties of the plane. Try changing the function so that it alters the pitch or roll, or even combinations of these.
Here is a complete code listing at this stage:
import org.papervision3d.cameras.Camera3D; import org.papervision3d.render.BasicRenderEngine; import org.papervision3d.scenes.Scene3D; import org.papervision3d.view.Viewport3D; import org.papervision3d.objects.primitives.Plane;
var viewport:Viewport3D = new Viewport3D(stage.stageWidth,stage.stageHeight); var scene:Scene3D = new Scene3D(); var camera:Camera3D = new Camera3D(); var renderer:BasicRenderEngine = new BasicRenderEngine(); var plane:Plane = new Plane(null,0,0);
addChild(viewport); scene.addChild(plane); renderer.renderScene(scene, camera, viewport);
addEventListener( Event.ENTER_FRAME, loop);
function loop(event:Event):void {
plane.yaw(5);
renderer.renderScene(scene, camera, viewport);
} | » Level Intermediate |
|
Added: 2009-07-29 Rating: 9.6 Votes: 5 |
| » Author |
| Lecturer in Graphic Design at Carnegie College, Scotland. Specializes in interactive media. |
| » Download |
| Download the files used in this tutorial. |
| Download (253 kb) |
| » Forums |
| More help? Search our boards for quick answers! |
-
You must have javascript enabled in order to post comments.


Comments
There are no comments yet. Be the first to comment!