1 / 55

TWO-DIMENSIONAL GEOMETRIC

TWO-DIMENSIONAL GEOMETRIC. TRANSFORMATION. Translation Rotation Scaling Shearing. ภาพ (Image) ในที่นี้แบ่งออกเป็น 2 ประเภท. Primitive drawing ภาพที่เกิดจากคำสั่งพื้นฐาน เช่น จุด เส้นตรง วงกลม สามเหลี่ยม สี่เหลี่ยม เส้นโค้ง ฯลฯ. 2. Complex

berke
Download Presentation

TWO-DIMENSIONAL GEOMETRIC

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. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. TWO-DIMENSIONAL GEOMETRIC TRANSFORMATION • Translation • Rotation • Scaling • Shearing

  2. ภาพ (Image) ในที่นี้แบ่งออกเป็น 2 ประเภท • Primitive drawing • ภาพที่เกิดจากคำสั่งพื้นฐาน เช่น จุด เส้นตรง วงกลม • สามเหลี่ยม สี่เหลี่ยม เส้นโค้ง ฯลฯ 2. Complex ภาพที่เกิดจาก จุด (pixel) มาประกอบกันเข้า เช่น คน บ้าน วิว ภาพที่เป็น bitmap

  3. (x’,y’) (x,y) TRANSLATION เป็นการย้ายตำแหน่งของภาพจากเดิมไปสู่ตำแหน่งใหม่หรือจากจุด (x,y) เดิม ไปเป็น (x’,y’) โดยที่ X’ = x + H Y’ = y + V V H โดยที่ H เป็นระยะทางที่เปลี่ยนแปลงในแกนนอน (แกน x) V เป็นระยะที่เปลี่ยนแปลงในแกนตั้ง (แกน y)

  4. y x

  5. y x

  6. ROTATION เป็นการหมุนของวัตถุ โดยเปลี่ยนตามมุมของการหมุน (rotation angle) ในทิศทางทวนเข็มนาฬิการอบจุดหมุน (pivot point) y (x,y) r rsin   x rcos  ในระบบแกนโพลาร์โคออร์ดิเนต x = r cos  y = r sin 

  7. y (1,1) r y = rsin  1 1  x x = rcos  ในที่นี้ r = √x2+y2=√12+12 = √2 = tan-11 = 45 องศา โพลาร์โคออร์ดิเนต x = r cos  = √2 cos 45 = √2 (1/√2 ) = 1 = x y = r sin = √2 sin 45 = √2 (1/√2 ) = 1 = y

  8. y จุด (x,y) เดิมหมุนไปในทิศทาง ทวนเข็มนาฬิกาไปเป็นมุม  จะได้ พิกัดจุด (x’,y’) โดยที่ x’ = r x cos (+) y’ = r x sin (+) (x’,y’) r r (x,y)   x x = r cos() Y = r sin () Cos(A+B) = Cos(A)Cos(B) – Sin(A)Sin(B) Sin(A+B) = Sin(A)Cos(B) + Cos(A)Sin(B) โดยใช้กฎของ sine และ cosine ตามหลักตรีโกณมิติได้ x’ = r x cos() x cos() - r x sin () x sin() y’ = r x sin() x cos() + r x cos () x sin()

  9. y y  x x Pivot Point Pivot Point X’ = X x cos() - Y x sin () Y’ = Y x cos() + X x sin()

  10. ในกรณีของการหมุนวัตถุด้วยมุมรอบจุดหมุน (pivot point) โดยมี่จุดหมุนไม่ได้อยู่ที่จุดกำเนิด (origin) ต้องคำนวณตามลำดับขั้นตอนดังนี้ • ย้ายจุดหมุน (pivot point) มาอยู่ที่จุด origin ดังนั้น • ทุกๆจุดของวัตถุต้องย้ายมาอยู่ตำแหน่งใหม่ (x’,y’) โดยที่ • X’ = X – xp • y’ = Y - yp

  11. 2. ทำการ rotate ด้วยมุม  รอบจุด origin ได้จุดใหม่ (x’,y’) X’’ = X’ x cos() – Y’ x sin () Y’’ = Y’ x cos() + X’ x sin() โดยการจัดเทอมทางตรีโกณมิติ และแทนค่า x’,y’ ลงในสมการ X’’ = (X-xp) x cos() – (Y-yp) x sin () Y’’ = (Y-yp) x cos() + (X-xp) x sin()

  12. 3. ทำการย้ายจุดหมุนกลับสู่จุด pivot point เดิมได้จุด (x’’’,y’’’) X’’’ = X’’ + xp Y’’’ = Y’’ + yp แทนค่า x’’,y’’ ลงในสมการได้ X’’’ = (X-xp) x cos() – (Y-yp) x sin () + xp Y’’’ = (Y-yp) x cos() + (X-xp) x sin() + yp

  13. 1. Translate Object (xp,yp) (xp,yp) 3. Translate 2. Rotate (xp,yp) (xp,yp)

  14. SCALING การลดหรือขยายขนาดของรูป สามารถเปลี่ยนแปลงขนาดของวัตถุ ได้โดยนำจุดใดๆ ที่ประกอบขึ้นเป็นวัตถุ คูณกับค่า Scaling Factor • Scaling factor > 1 วัตถุที่ได้ขนาดใหญ่กว่าเดิม • Scaling factor < 1 วัตถุที่ได้เล็กกว่าเดิม ในการ scaling มีจุดในการกำหนดตำแหน่งของวัตถุที่ต้องการ ลดหรือขยาย เรียกว่า fixed point ถ้ากำหนด fixed point ที่ origin(0,0) จุด (x,y) ต้องการ scale ด้วย Sx ทิศทางในแนวแกน X Sy ทิศทางในแนวแกน Y

  15. distance distance Fixed Point Fixed Point ได้จุดใหม่ (x,y) โดยที่ X’ = X x Sx Y’ = Y x Sy y y x x

  16. ในการกำหนดจุด (xp,yp) เป็น fixed point ซึ่งไม่ได้ อยู่ที่จุด origin มีขั้นตอนในการ scaling ดังนี้ 1. ย้ายจุด (xp,yp) ไปที่ origin X’ = X - Xp, Y’ = Y - Yp 2. Scale จุดโดยคูณกับ Sx, Sy X’’ = X’x Sx, Y’’ = Y’x Sy 3. ย้ายจุด (Xp,Yp) จาก origin สู่จุดเดิม X’’’ = X’’ + Xp, Y’’’ = Y’’ + Yp แทนค่า X’,Y’,X’’,Y’’ในสมการได้ X’’’ = (X - Xp) x Sx + Xp Y’’’ = (Y - Yp) x Sy + Yp

  17. 1. Translate Object (xp,yp) (xp,yp) 3. Translate 2. Scaling (xp,yp) (xp,yp)

  18. SHEARING เป็นการเปลี่ยนแปลงวัตถุในลักษณะเป็นการเปลี่ยนแปลงค่า ในด้าน x หรือ y ด้านใดด้านหนึ่ง มี 2 แบบคือ x-shear และ y-shear X-shear เป็นการเปลี่ยนแปลงค่าจากจุด (x,y) เป็น (x’,y’) โดยที่ X’ = X + shx . Y , Y’ = Y , shx  0 Y-shear เป็นการเปลี่ยนแปลงค่าจากจุด (x,y) เป็น (x’,y’) โดยที่ X’ = X, Y’ = Y + shy . X , shy  0

  19. X-shear (0,1) (1,1) (2,1) (3,1) (1,0) (0,0) (0,0) (1,0)

  20. Y-shear (1,3) (0,1) (1,1) (0,1) (1,2) (1,0) (0,0) (0,0)

  21. Inverse Transformation Translate : -H, -V Rotate : - Scale : 1/Sx, 1/Sy Shear : -Shx, -Shy

  22. MATRIX REPRESENTATION OF TRANSFORMATIONS • 0 0 • 0 1 0 • 0 0 1 [ x’ y’ 1] = [ x y 1]

  23. MATRIX REPRESENTATION OF TRANSFORMATIONS TRANSLATION • 0 0 • 0 1 0 • H V 1 [ x’ y’ 1] = [ x y 1]

  24. MATRIX REPRESENTATION OF TRANSFORMATIONS ROTATION Cos  Sin  0 -Sin  Cos  0 0 0 1 [ x’ y’ 1] = [ x y 1]

  25. MATRIX REPRESENTATION OF TRANSFORMATIONS SCALING Sx 0 0 0 Sy 0 0 0 1 [ x’ y’ 1] = [ x y 1]

  26. MATRIX REPRESENTATION OF TRANSFORMATIONS SHEARING X-Shear 1 0 0 Shx 1 0 0 0 1 [ x’ y’ 1] = [ x y 1] Y-Shear 1 Shy 0 0 1 0 0 0 1 [ x’ y’ 1] = [ x y 1]

  27. Scaling Relative to a Fixed Point Sx 0 0 0 Sy 0 0 0 1 1 0 0 0 1 0 -xp –yp 1 1 0 0 0 1 0 xp yp 1 Sx 0 0 0 Sy 0 (1-Sx)xp (1–Sy)yp 1 =

  28. Rotation About a Pivot Point Cos  Sin  0 -Sin  Cos  0 0 0 1 1 0 0 0 1 0 xp yp 1 1 0 0 0 1 0 -xp –yp 1 Cos Sin 0 -Sin Cos 0 (1-Cos)xp+ypsin (1-Cos)xp+ypsin 1 =

  29. Reflection Y • reflect กับแกน x X’ = x Y’ = -y x • 0 0 • 0 -1 0 • 0 0 1 [ x’ y’ 1] = [ x y 1]

  30. Reflection y • reflect กับแกน y X’ = -x Y’ = y x -1 0 0 0 1 0 0 0 1 [ x’ y’ 1] = [ x y 1]

  31. Reflection y • reflect กับส้นตรง y=x X’ = y Y’ = x x 0 1 0 1 0 0 0 0 1 [ x’ y’ 1] = [ x y 1]

  32. 2 D Composite Transformation • Rotation P1 1.Translate P1 to origin 2. Rotate 3. Translate Back to P1 T(x1,y1) . R() . T (-x1, -y1)

  33. Composite Transformation 2 D Translate -> Rotate Rotate -> Translate

  34. จากจอภาพชนิดหนึ่งมีความละเอียด (resolution) 1024 x 768 จุด • และสามารถแสดงความละเอียดของสีได้ 16.7 ล้านสี (24 bits) จะต้องใช้ • memory ของ Video Card จำนวนเท่าใดอธิบายและคำนวณพอเข้าใจ 2. รูปสี่เหลี่ยมจัตุรัสรูปหนึ่งมีค่า Coordinate ใน World Coordinates ดังแสดงข้างล่างนี้ถูกแปลงรูป (transform) ไปโดยมีขั้นตอนของการแปลงรูปตามลำดับต่อไปนี้ ก) ขยายรูป (scaling) ให้โตขึ้น 2 เท่าของรูปเดิมโดยมี fixed point อยู่ที่จุดศูนย์กลางของรูปจัตุรัส ข) หมุนรูป (rotation) ไป 90 ํทวนเข็มนาฬิกาโดยมีจุดหมุน (pivot point) อยู่ที่จุดล่างซ้าย (bottom left) ของรูปจัตุรัสที่ได้จากข้อกแล้ว อธิบายหลักการและวิธีการรวมทั้งเมตริกซ์ที่ใช้ในการ transform ดังกล่าวและคำนวณหาจุดยอดที่ได้หลังจากการแปลงรูปแล้ว

  35. (100,200) (200,200) (100,100) (200,100) • จงแสดงวิธีการและคำนวณหา Coordinate ที่ได้หลังจากการ Mapping • รูปสามเหลี่ยมรูปหนึ่งซึ่งมีจุดยอด (100,100), (800,400), (800,100) • โดยกำหนด window (0,1000,0,500) และกำหนด viewport เป็น • NDC ทั้งหมด 5 viewport คือ (0,1,0,1) , (0,1,0,0.5), • (0,1,0.5,1), (0,0.5,0,1), (0.5,1,0,1)ให้กำหนด resolution • ที่เหมาะสมแล้วคำนวณหาจุดที่ได้ใน Screen Coordinate

  36. (100,200) (200,200) (150,150) (200,100) (100,100)

  37. Scaling Relative to a Fixed Point Sx 0 0 0 Sy 0 0 0 1 1 0 0 0 1 0 -xp –yp 1 1 0 0 0 1 0 xp yp 1 Sx 0 0 0 Sy 0 (1-Sx)xp (1–Sy)yp 1 =

  38. 1. Translate Object (xp,yp) (xp,yp) 3. Translate 2. Scale (xp,yp) (xp,yp)

  39. Sx 0 0 0 Sy 0 (1-Sx)xp (1–Sy)yp 1 Sx = 2, Sy = 2,xp = 150, yp = 150 2 0 0 0 2 0 -150 –150 1

  40. [100 100 1] [50 50 1] 2 0 0 0 2 0 -150 –150 1 = [200 100 1] [250 50 1] [250 250 1] [200 200 1] [50 250 1] [100 200 1]

  41. (100,200) (200,200) (150,150) (200,100) (100,100) (50,250) (250,250) (50,50) (250,50)

  42. ในการกำหนดจุด (xp,yp) เป็น fixed point ซึ่งไม่ได้ อยู่ที่จุด origin มีขั้นตอนในการ scaling ดังนี้ 1. ย้ายจุด (xp,yp) ไปที่ origin X’ = X - Xp, Y’ = Y – Yp (100,100)  (-50,-50) (100,200)  (-50,50) (200,200)  (50,50) (200,100)  (50,-50) จากจุด (x,y) เดิม ถูกย้ายไป (-150,-150)

  43. 2. Scale จุดโดยคูณกับ Sx, Sy X’’ = X’ x Sx, Y’’ = Y’ x Sy จากจุด (x,y) เดิม คูณด้วย 2 (-50,-50)  (-100,-100) (50,-50)  (100,-100) (50,50)  (100,100) (-50,50)  (-100,100)

  44. 3. ย้ายจุด (Xp,Yp) จาก origin สู่จุดเดิม X’’’ = X’’ + Xp, Y’’’ = Y’’ + Yp จากจุด (x,y) เดิม ถูกย้ายไป (150,150) (-100,-100)  (50,50) (100,-100)  (250,50) (100,100)  (250,250) (-100,100)  (50,250)

  45. Y (50,250) (250,250) (250,50) (50,50) X

  46. Rotation About a Pivot Point Cos  Sin  0 -Sin  Cos  0 0 0 1 1 0 0 0 1 0 xp yp 1 1 0 0 0 1 0 -xp –yp 1 Cos Sin 0 -Sin Cos 0 (1-Cos)xp+ypsin (1-Cos)yp-xpsin 1 =

  47. Cos Sin 0 -Sin Cos 0 (1-Cos)xp+ypsin (1-Cos)yp-xpsin 1 Sin 90= 1, cos 90 = 0, xp = 50, yp = 50 0 1 0 -1 0 0 100 0 1

  48. [ 50 50 1] [ 50 250 1] [ 250 250 1] [250 50 1] [ 50 50 1] [ -150 50 1] [ -150 250 1] [ 50 250 1] 0 1 0 -1 0 0 100 0 1 จุดยอดใหม่ที่ได้ คือ (50,50),(-150,50),(-150,250),(50,250)

More Related