+ All Categories
Home > Documents > Graphics Programming

Graphics Programming

Date post: 25-Feb-2016
Category:
Upload: duyen
View: 30 times
Download: 0 times
Share this document with a friend
Description:
Graphics Programming. Lecture 3 - Simple Animation - Simple 3D Drawing. Resources. Processing web site:  http://www.processing.org/ Linear motion (moving stuff around):  http://www.processing.org/learning/topics/linear.html Bitmap animation (swapping pictures): - PowerPoint PPT Presentation
12
GRAPHICS PROGRAMMING Lecture 3 - Simple Animation - Simple 3D Drawing
Transcript
Page 1: Graphics Programming

GRAPHICS PROGRAMMING

Lecture 3- Simple Animation- Simple 3D Drawing

Page 2: Graphics Programming

RESOURCES Processing web site: 

http://www.processing.org/ Linear motion (moving stuff around): 

http://www.processing.org/learning/topics/linear.html Bitmap animation (swapping pictures):

http://www.processing.org/learning/topics/sequential.html

Reference:  http://www.processing.org/reference/index.html

MORE MORE MORE TUTORIALS http://www.processing.org/learning/

Page 3: Graphics Programming

CONTENT1. On Human Perception2. Animation

1. Vector Animation2. Bitmap Animation

3. Movement and Animation4. 3D Images

Page 4: Graphics Programming

ANIMATION Basic animation involves the following steps:

1. Drawing initial frame - perhaps in setup().2. Waiting some amount of time (e.g., 1/60th of a second)

Processing does that automatically3. Erasing the screen. 

Usually be reapplying the background ( often the first thing we do in the draw( ) function).

4. Drawing the next frame/image/picture.5. Repeating steps 2-4, until you are ready to stop

animating. There are two basic ways to implement animation:

Drawing your own shapes, text, etc. Displaying a GIF or other image file

There are issues with the "frame rate" that we choose.

Page 5: Graphics Programming

ON HUMAN PERCEPTION Human eyes and brains are unable to process

properly images that are moving to fast. One famous example of this (which we can

demonstrate) is the "flicker fusion" test. A black box and a white box are alternately presented

in the same exact place on the screen. We change the frame rate so that those two boxes are

alternated at faster and faster speeds. Depending on the ambient light, at somewhere

between 30 and 60 frames per second you will see a only a single grey box.

You may need to slow down your own animations to 20-30 frames per second in order for some aspects of your animation to be visible.

Most movies are and games are animated around the 24-30 frames per second rate.

Page 6: Graphics Programming

BITMAP ANIMATION (1) In Bitmap Animation

we have a series of pictures, each of which is slightly different.

We can achieve the illusion of animation, by presenting those different pictures rapidly in succession.

In practical terms we will want to store our images in an array (a type of list).

Page 7: Graphics Programming

BITMAP ANIMATION (2)int numFrames = 4; // The number of frames in the animationint frame = 0; // The picture to draw

PImage[ ] images = new PImage[numFrames]; // List of picture objects

void setup() {size( 200, 200 );frameRate( 30 );images[0] = loadImage("PT_anim0000.gif");images[1] = loadImage("PT_anim0001.gif");images[2] = loadImage("PT_anim0002.gif");images[3] = loadImage("PT_anim0003.gif");

}void draw() {

frame = ( frame + 1 ) % numFrames; // Cycle through framesimage( images[frame], 50, 50 );

}

Page 8: Graphics Programming

VECTOR ANIMATION (1) In Vector Animation

we change the pictures that are drawn each frame by subtly modifying our mathematical code.

In the example to the right, only one line of code is changed, in order to get the two different pictures.

We can use a "gate" variable, to switch between drawing the different pictures each time.

Page 9: Graphics Programming

VECTOR ANIMATION (2)int v_image=0;

void setup() {frameRate(20);

}

void draw() {background(#FFFFFF); // clears the screen

quad( 40,40, 95,60, 95,50, 5,70); //body of the helicopter

if(v_image == 0) { line(40,40, 80,30); // Line to the right v_image = 1; } else { line(40,40, 0,50); // Line to the left v_image = 0; }}

Page 10: Graphics Programming

ANIMATION AND MOVEMENT

Page 11: Graphics Programming

ANIMATION AND MOVEMENT (VECTOR)int v_image=0;int xPos = 0; // x Position of our image.

void setup() { frameRate(20); }void draw() {

background(#FFFFFF); xPos = xPos -1;

if(xPos < -95) {xPos = 95;}quad( 40+xPos,40, 95+xPos,60, 95+xPos,50, 5+xPos,70); if(v_image == 0) {line( 40+xPos,40, 80+xPos,30 );v_image = 1;} else {line( 40+xPos,40, 0+xPos,50 );v_image = 0;

}}

Page 12: Graphics Programming

ANIMATION AND MOVEMENT (BITMAP)int numFrames = 4; int frame = 0;int xPos = 0;PImage[] images = new PImage[numFrames];

void setup() { ... // Same as before... load the four images}

void draw() {background(#ffffff);frame = ( frame + 1 ) % numFrames; image( images[frame], 50+xPos, 50 );xPos = (xPos + 5);if( xPos > width) {

xPos = -100; }

}


Recommended