chapter 1 elementary concepts
play

Chapter 1 Elementary Concepts Lines and Coordinates Device - PDF document

Chapter 1 Elementary Concepts Lines and Coordinates Device Coordinates Logical Coordinates Converting Between Logical and Device Coordinates Mapping From Logical to Device Coordinates Anisotropic mapping Isotropic


  1. Chapter 1 Elementary Concepts � Lines and Coordinates � Device Coordinates � Logical Coordinates � Converting Between Logical and Device Coordinates � Mapping From Logical to Device Coordinates � Anisotropic mapping � Isotropic mapping �  2006 Wiley & Sons Lines and Coordinates � In Java, to draw a line g.drawLine(xA, yA, xB, yB) � Same as g.drawLine(xB, yB, xA, yA) � � E.g. to draw the largest possible rectangle on a canvas: ��������������� ��������������� �������� �  2006 Wiley & Sons 1

  2. Example: Red Rectangle …… � class CvRedRect extends Canvas � { public void paint(Graphics g) � { Dimension d = getSize(); � int maxX = d.width - 1, maxY = d.height - 1; � g.drawString("d.width = " + d.width, 10, 30); � g.drawString("d.height = " + d.height, 10, 60); � g.setColor(Color.red); � // Top edge g.drawLine(0, 0, maxX, 0); � g.drawLine(maxX, 0, maxX, maxY); // Right edge � g.drawLine(maxX, maxY, 0, maxY); // Bottom edge � g.drawLine(0, maxY, 0, 0); // Left edge � } � } � g.drawRect(0, 0, maxX, maxY); �  2006 Wiley & Sons Device Coordinate System d.width = 8 0 1 2 3 4 5 6 7 x 0 1 d.height = 4 2 3 y The rectangle size drawn by � g.drawLine(x, y, maxX, maxY) is (maxX +1) by maxY + 1) � The smallest rectangle is a square 2 x 2, using � g.drawRect(x, y, 1, 1) � To draw one dot � g.drawLine(x, y, x, y) � �  2006 Wiley & Sons 2

  3. Device Coordinate System (cont’d) � To fill a rectangle of size w x h, use � g.fillRect(x, y,w,h) � g.drawRect(x, y,w,h) draws a slightly bigger rectangle than by g.fillRect(x, y,w,h) � Filling problem: discrete nature � e.g. to fill a triangle half of a rectangle D C ����������� A B �  2006 Wiley & Sons Logical Coordinate System � To put origin at the left-bottom corner as in math: � y’ = maxY – y (x-axis is unchanged) Coordinate Convention Data Value Positive System Type Domain y- axis Logical Lower-case float Continuous Upward letters Device Upper-case integer Discrete Downward letters  2006 Wiley & Sons 3

  4. Converting Between Logical and Device Coordinates � Rounding: � Int iX(float x){return Math.round(x);} // L -> D � Float fx(int x){return (float)x;} // D -> L � E.g. iX(2.8) = 3, fx(3) = 3.0 � Truncating: � Int iX(float x){return (int)x;} // L -> D � Float fx(int x){return (float)x+0.5;} // D -> L � E.g. iX(2.8) = 2, fx(2) = 2.5 � For both above, |x-fx(iX(x))| ≤ 0.5 � Max lost precision is 0.5 � Rounding will be used throughout this book �  2006 Wiley & Sons An Important Principle in Conversion Step i+1 computation is performed on FP result of Step i: � float � � float float float � � � � int int int int Rather than (accumulating rounding off errors): float float float float � � � � int int int int !  2006 Wiley & Sons 4

  5. Mapping From Logical to Device Coordinates � Can we use int iX(float x){return Math.round(x);} to map from logical coordinates 0.0 – 10.0 (real) to device coordinates 0 – 9 (integer)? 9 ´ pixelWidth Pixel number X 0 1 2 3 4 5 6 7 8 9 Logical x 0 1 2 3 4 5 6 7 8 9 10 10 logical units �  2006 Wiley & Sons Mapping From Logical to Device Coordinates (cont’d) � So pixel width in terms of logical coordinates is 10/9 = 1.11. � Enhanced method is � Int iX(float){return Math.round(x/pixelWidth);} � In this example, 9 = number of pixels (10) –1 � 10 is width of logical interval, I.e. 0 ≤ x ≤ rWidth � It works similarly with vertical (y) coordinates (rHeight). ��  2006 Wiley & Sons 5

  6. Anisotropic/Isotropic Mapping � Anisotropic mapping: pixelWidth ≠ pixelHeight � Unsuited for shapes like squares and circles � Isotropic mapping: pixelWidth = pixelHeight (pixelSize) � Int iX(float){return Math.round(x/pixelWidth);} � Usually we want the origin of the logical coordinates to be in the center, so � -0.5 rWidth ≤ x < 0.5rWidth � -0.5 rHeight ≤ x < 0.5rHeight � Mapped to device coordinates 0 – maxX and 0 – maxY. ��  2006 Wiley & Sons Chapter 2 Applied Geometry � Vectors � Dot (inner) Product � Vector (cross) Product � Determinants � Orientation of 3 points � Polygon Shapes � Point-in-Polygon Test � Point and Line Relationships � Triangulation of Polygons ��  2006 Wiley & Sons 6

  7. Vectors � Vector = length + direction of a line segment � Useful representation of real-world measurements, e.g. velocity. � Not to be confused with Java vectors � Length of u = | u | � -u has the same length but opposite direction # % � &�"#�&� � &�$% � � '�������������(�������������������� $ " ��  2006 Wiley & Sons Vector Addition � w = u + v is the diagonal of the parallelogram formed by u and v � ) � ) � � � � � ) � ) � � � � � ��  2006 Wiley & Sons 7

  8. Multiplying a vector with a real number � C being a real number, the length of vector cu is |c|| u | � A vector of unit length is z called a unit vector � Right-handed coordinate systems for k 3D � i x j y ��  2006 Wiley & Sons Vector (cont’d) � Linear combination of i , j and k : � v = x i + y j + z k = OP � x, y, and z are coordinates of P and called elements or components of v , or simply � v = [x y z] �  2006 Wiley & Sons 8

  9. Dot Product (Inner Product) � Dot product of u and v , i.e. u·v , is a real number � | u || v | cos θ if u ≠ 0 and v ≠ 0 � u·v = � � = = 0 if u 0 or v 0 ( � is the angle between u and v ) � For unit vectors i , j and k : � i·i = j·j = k·k = 1 � i·j = i·k = j·k = k·j = j·i = k·i = 0 ��  2006 Wiley & Sons Dot Product (cont’d) | u u | � Since u·u = | u | 2 , | u | = • � Properties of dot product: � c ( k u·v ) = ck ( u·v ) � ( c u + k v ) · w = c u·w + k v·w � u·v = v·u � u·u = 0 only if u = 0 � Dot product of u = [u x u y u z ] and v = [v x v y v z ] is � u·v = u x v x + u y v y + u z v z �!  2006 Wiley & Sons 9

  10. Vector Product (Cross Product) � Vector product of u and v , i.e. u x v , is a vector w � w = 0 if u = c v , otherwise | w | =| u || v |sin � ( � is the angle between u and v ) � | w | is the area size of the parallelogram formed by u and v � Direction: right-handed screw rule �� & � � � � * � *�&* � ** � *��� + + � ��  2006 Wiley & Sons Vector Product (cont’ed) � Properties: � (k u ) � v = k( u � v ) � u � ( v + w ) = u � v + u � w � u � v = - v � u � i � i = j � j = k � k = 0 � i � j = k j � i = -k � j � k = i k � j = -i � k � i = j i � k = - j ��  2006 Wiley & Sons 10

  11. Vector Product (cont’d) � u � v = (u 1 i + u 2 j + u 3 k ) �� (v 1 i + v 2 j + v 3 k ) = u 1 v 1 ( i �� i ) …… u u u u u u 2 3 3 1 1 2 × = u v i + j + k v v v v v v 2 3 3 1 1 2 i j k × = u v u u u 1 2 3 v v v 1 2 3 ��  2006 Wiley & Sons Determinants � To solve two linear equations � a x + b y = c 1 1 1 � � + = a x b y c 2 2 2 we multiple the 1 st equation by b 2 , 2 nd by –b 1 , and then add them up to cancel y (similarly cancel x ), obtain (if (a 1 b 2 – a 2 b 1 ) � 0): − − b c b c a c a c = 2 1 1 2 = 1 2 2 1 x y − − a b a b a b a b 1 2 2 1 1 2 2 1 ��  2006 Wiley & Sons 11

  12. Determinants (cont’d) � We can write D D 1 2 = = ≠ x y ( D 0 ) D D a c c b a b 1 1 1 1 = D 1 1 = D = D 2 1 a c c b a b 2 2 2 2 2 2 ��  2006 Wiley & Sons Determinants (cont’d) � Properties a b a a 1 1 1 2 = (1) a b b b 2 2 1 2 a b c a b c (2) 1 1 1 1 1 1 a b c = − a b c 2 2 2 3 3 3 a b c a b c 3 3 3 2 2 2 ca b a a (3) 1 1 1 2 = c ca b b b 2 2 1 2 ��  2006 Wiley & Sons 12

  13. Determinants (cont’d) � Properties a b c a b c 1 1 1 1 1 1 (4) = a b c a b c 2 2 2 2 2 2 + + + a ka b kb c kc a b c 3 1 3 1 3 1 3 3 3 a b c 1 1 1 (5) = a b c 0 2 2 2 − − − 3 a 2 a 3 b 2 b 3 c 2 c 1 2 1 2 1 2 ��  2006 Wiley & Sons Orientation of 3 Points C C A B B A ,�����������-�� ,�����������.�� ,�����������&���/����'��0����1�����������������(������� �  2006 Wiley & Sons 13

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend