Digital Media Lecture 5: Vector Graphics Georgia Gwinnett College School of Science and Technology Dr. Jim Rowan Refer to Supplemental text: So far… We have compared bitmapped graphics and vector graphics We have discussed bitmapped images, some file formats and some file compression techniques Today we are going to talk in a bit more detail about vector graphics Later we will cover Color Then 3D vector graphics Vector Graphics… An elegant way to construct digital images that – can have a compact representation – are scalable – provides access to the objects And mandatory for 3-D modeling But first: Coordinate systems Coordinate Systems Bitmapped pixel coordinates (integer) X 0 1 Y 0,0 1,0 2,0 9,0 0,1 1,1 2,1 9,1 0,4 1,4 2,4 9,4 0 1 2 3 4 2 3 4 9 Coordinate Systems Bitmapped pixel coordinates (integer) X B A Y E C D A?= ( , ) B?= ( , ) C?= ( , ) D?= ( , ) E?= ( , ) Coordinate Systems Vector graphics coordinates (real values) A point is defined by its x and y coordinate y (x,y) 2 (1.41, 1.74) They can be fractional They can be negative 1 0 1 2 3 x Coordinate Systems Vector graphics coordinates (real values) y A displacement (distance between points or movement from one point to another) can be defined by a pair of points point 1 2 displacement from point 1 to point 2? displacement = = [(x2 - x1), (y2 - y1)] = (3.12 - 1.41, 0.95 - 1.74) = (1.71,-0.79) (1.41, 1.74) 1 point 2 (3.12, 0.95) 0 1 2 3 x Vectors Vectors have magnitude (length) and direction This vector goes down 0.79 and to the right 1.71 (1.71 , -0.79) y point 1 2 (1.41, 1.74) 1 point 2 (3.12, 0.95) 0 1 2 3 x Why “vector graphics?” This is a grandfathered term It comes from the CRT days when displays could be directly “steered” by their programs A program passed a vector to the display and the beam would move to the next point drawing a line Next: Absolute vs Window coordinate systems Absolute vs Window Applications render images inside of a window – They know where stuff is in the window – But not where the window is – They deal with relative coordinates The Operating system – Keeps up with the where the window is – Not what is in the window – It deals with absolute coordinates Absolute vs Window absolute – coordinates: measured back to the upper left hand corner of the screen relative (to the window) – coordinates measurement back to the upper left hand corner of the window to convert relative to absolute, add the relative coordinates to the absolute coordinate of the upper left hand corner of that window The bounding box It’s a way to locate a complex object in space What point is used to place an object? – the center of the object’s mass? – the upper left corner? – the lower right corner? images can be contained inside a “bounding box” which is the smallest box that contains all the points found in an object Bounding boxes; relative and absolute coordinates x (0,0) y desktop screen bounding box window (100,103) window 1 (410,290) window 1 (210,175) (760,570) Finally: Vector Graphics Store shapes economically in the form of formulas or equations of geometric shapes A line segment can be completely described by its two endpoints… Let’s look at the line a little closer Here’s the vector we saw earlier defined by it’s two endpoints 2 (1.41, 1.74) (3.12, 0.95) 1 0 1 2 3 x But… To display a vector graphic you need to convert the vector to a bitmapped graphic… This presents problems! Convert Vector to Bitmapped Visually... “completely cover the vector with pixels” 2 1 0 1 2 3 x Convert Vector to Bitmapped Visually... “completely cover the vector with pixels” 2 1 0 1 2 3 x Convert Vector to Bitmapped Results in an artifact… a jagged line called an alias that looks like a series of steps 2 1 0 1 2 3 x How to mitigate this alias? Anti-aliasing techniques are used but… How does this work? 2 1 0 1 2 3 x Anti-aliasing our pixellated line to be displayed is in black 2 1 0 1 2 3 x Anti-aliasing the original vector graphic stored in the internal model is in red our pixellated line to be displayed is in black 2 1 0 1 2 3 x Anti-aliasing 2 1 0 1 2 3 x Anti-aliasing 2 1 0 1 2 3 x Vector Graphics: drawing smooth curves? • Question: How would you draw a curve using a computer with a mouse? • You can’t draw smooth lines very easily • A line tool with handles (based on the Bezier curve) can be manipulated by those handles Lines and curves? Bezier curves can be smoothly joined together An anchor point is the point where one joins the other When a curve closes on itself it is considered a closed curve When it doesn’t it’s an open curve Lines and curves? Closed (and open for that matter) lines can be filled – solid color, pattern or gradient (linear or radial) Lines can have different ends – mitre, rounded, square, bevel The language of Manipulating objects… Translation: is a simple up/down sideto-side movement Scaling: make bigger or smaller Rotation: about a point Reflection: about a line 3D vector graphics? MUCH more complex than 2-D 3-D shapes (objects) are defined by their surfaces Made even more complicated by the fact that a 3-D object built inside the computer must be displayed as a 2-D graphic on a computer screen... – This results in the need to specify the viewpoint