Loading in 5 sec....

CS U540 Computer GraphicsPowerPoint Presentation

CS U540 Computer Graphics

- By
**chico** - Follow User

- 102 Views
- Uploaded on

Download Presentation
## PowerPoint Slideshow about ' CS U540 Computer Graphics' - chico

**An Image/Link below is provided (as is) to download presentation**

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript

Cartesian Coordinates

- Any two non-zero, non-parallel 2D vectors form a 2D basis.
- Any 2D vector can be written uniquely as a linear combination of two 2D basis vectors.
- x and y (or i and j) denote unit vectors parallel to the x-axis and y-axis.
- x and y form an orthonormal 2D basis.
a = xax + yay

a =( xa, ya) or

- x, y and z form an orthonormal 3D basis.

or a =(ax,ay)

b

Dot ProductDot Product

a =( xa, ya ) b =( xb, yb )

ab = xa xb + ya yb

ab = abcos()

xa= acos(+)

xb= bcos()

xa= asin(+)

xb= bsin()

b

ab

Projectiona =( xa, ya ) b =( xb, yb )

ab = abcos()

The length of the projection of a onto b is given by

3D Vectors

This all holds for 3D vectors too.

a =( xa, ya, za ) b =( xb, yb, zb )

ab = xa xb + ya yb + za zb

ab = abcos()

Vector Cross Product

axb

axb is perpendicular to a and b.

Use the right hand rule to determine the direction of axb.

b

a

Image from www.physics.udel.edu

(1-t)L

tL

L

a

Linear Interpolation- LERP: /lerp/, vi.,n.
- Quasi-acronym for Linear Interpolation, used as a verb or noun for the operation. “Bresenham's algorithm lerps incrementally between the two endpoints of the line.”
p = (1 – t) a + t b = a + t(b – a)

- Quasi-acronym for Linear Interpolation, used as a verb or noun for the operation. “Bresenham's algorithm lerps incrementally between the two endpoints of the line.”

Triangles

a

If (x, y) is on the edge ab,

(x, y) = (1 – t) a + t b = a + t(b – a).

Similar formulas hold for points on the other edges.

If (x, y) is in the triangle:

(x, y) = a + b + c

+ + = 1

( , , ) are the

Barycentriccoordinates of (x, y).

(x,y)

c

b

Triangles

p = a + (b-a) + (c-a)

= 2

= 1

= 0

= -1

= 2

p = (1- - )a + b + c

= 1- -

p = p(, ,) =

a + b + c

= 1

c

c-a

= 0

b

b-a

a

Barycentric coordinates

= -1

= 0

= 1

3D Triangles

a

This all still works in 3D.

(x,y,z)

where A is the area of the

triangle.

+ + = 1

c

b

But how do we find the areas of the triangles?

Triangle Assignment

http://www.ccs.neu.edu/home/fell/CSU540/programs/CSU540ColorTriangle.html

Portable Pixmap Format (ppm)

A "magic number" for identifying the file type.

- A ppm file's magic number is the two characters "P3".
- Whitespace (blanks, TABs, CRs, LFs).
- A width, formatted as ASCII characters in decimal.
- Whitespace.
- A height, again in ASCII decimal.
- Whitespace.
- The maximum color value again in ASCII decimal.
- Whitespace.
- Width * height pixels, each 3 values between 0 and maximum value.
- start at top-left corner; proceed in normal English reading order
- three values for each pixel for red, green, and blue, resp.
- 0 means color is off; maximum value means color is maxxed out
- characters from "#" to end-of-line are ignored (comments)
- no line should be longer than 70 characters

ppm Example

P3

# feep.ppm

4 4

15

0 0 0 0 0 0 0 0 0 15 0 15

0 0 0 0 15 7 0 0 0 0 0 0

0 0 0 0 0 0 0 15 7 0 0 0

15 0 15 0 0 0 0 0 0 0 0 0

String outFileName = “my.ppm";

File outFile = new File(outFileName);

int clrR, clrG, clrB;

try {

PrintWriter out = new PrintWriter(new BufferedWriter(new FileWriter(outFile)));

out.println("P3");

out.print(Integer.toString(xmax-xmin+1)); System.out.println(xmax-xmin+1);

out.print(" ");

out.println(Integer.toString(ymax-ymin+1)); System.out.println(ymax-ymin+1);

out.println("255");

for (int y = ymin; y <= ymax; y++){

for (int x = xmin; x <= xmax; x++) {

// compute clrR, clrG, clrB

out.print(" "); out.print(clrR);

out.print(" "); out.print(clrG);

out.print(" "); out.println(clrB);

}

}

out.close();

} catch (IOException e) {

System.out.println(e.toString());

}

}

Download Presentation

Connecting to Server..