Publication date: 07/08/2024

Example of Drawing a Spinning Cylinder

The following example uses several of the concepts presented in this section, including lighting, fog, and normalization. It draws a spinning cylinder that is affected by two lights.

scene = Scene Box( 300, 300 ); // make a scene box
New Window( "Cylinder", scene ); // put the scene in a window
 
For( i = 1, i < 360, i++,
	scene << Clear;
 

// the lens is 45 degrees, near is 3 units from the camera, far is 7.

	scene << Perspective( 50, 1, 10 );
 

// move the world so that 0,0,0 is visible in the camera

	scene << Translate( 0.0, 0.0, -2 );
	scene << Enable( Lighting );
	scene << Enable( Light0 );
	scene << Enable( Light1 );
	scene << Light( Light0, POSITION, 1, 1, 1, 1 ); // near viewer
	scene << Light( Light0, DIFFUSE, 1, 0, 0, 1 ); // red light
	scene << Light( Light1, POSITION, -1, -1, -1, 1 ); // behind object
	scene << Light( Light1, DIFFUSE, .5, .5, 1, 1 ); // blue-gray light
	scene << Enable( Fog );
	scene << Enable( NORMALIZE );
 
	scene << Rotate( i, 1, 0, 0 );
	scene << Rotate( i * 3, 0, 1, 0 );
	scene << Rotate( i * 3 / 2, 0, 0, 1 );
	scene << Cylinder( 0.5, 0.5, 0.5, 40, 10 );
	scene << Update;
	Wait( 0.01 );
);

Figure 13.18 FogĀ 

Fog

Want more information? Have questions? Get answers in the JMP User Community (community.jmp.com).