Chapter 3 Graphics Output primitives Part II © 2005 Pearson Education
Circle drawing algorithm Ellipse drawing algorithm Overview Circle drawing algorithm Ellipse drawing algorithm © 2005 Pearson Education
Direct Method วงรีเป็นรูปทรงที่เปลี่ยนมาจากวงกลมโดยการยืดวงกลมออกในทิศทางหนึ่งไปตามแกน X หรือแกน Y เราจะใช้สมการวงรีที่มีจุดศูนย์กลางที่ (xc,yc) ที่มีรัศมี rx และ ry โดยตรง วิธีวาด “วงรี” อย่างง่ายที่สุด คือ กำหนดค่า x แล้วคำนวณจุดที่ตำแหน่ง y จาก xc yc ry rx © 2005 Pearson Education
Trigonometric Function เปลี่ยนสมการวงรีที่เราคุ้นเคยให้เป็นสมการพิกัดเชิงขั้วดังนี้ Polar coordinate equation x = xc + rx cos y = yc + ry sin Step through values of from 0 to 2π Pixel (x, y) ry yc rx xc © 2005 Pearson Education
Midpoint Ellipse Algorithm Mid point Algorithm Useful in drawing curves Determine the closest pixel to the curve path by using the mid-point between two candidate pixels Example, mid-point at xk+1 along a ellipse path © 2005 Pearson Education
Midpoint Ellipse Algorithm การวาด วงรีที่มีจุดศุนย์กลางอยู่ที่ (xc,yc) ที่มีรัศมี rx และ ry สามารถทำได้โดยการเลื่อนวงกลมมาอยู่ที่จุดกำเนิด นั่นคือ (xc,yc) = (0, 0) แล้วหลังจากนั้นจึงเลื่อนไปยังจุดที่ถูกต้อง โดยการบวกจุดภาพ (x, y) ที่ได้ด้วยค่าพิกัด (xc,yc) ไม่จำเป็นต้องคำนวณหาจุดภาพ (x, y) ทุกจุดของเส้นรอบวง สามารถใช้กฎการสมมาตรเทียบกับแกน x = ±y และแกน x และ y ดังรูป Y (x,y) x © 2005 Pearson Education
Midpoint Ellipse Algorithm Define the implicit of ellipse function as By putting a point (x, y) into the ellipse function We can use the ellipse function as the decision parameter as same as Bresenham’s algorithm © 2005 Pearson Education
Deriving decision parameter ในการคำนวณหาตำแหน่ง pixel ของวงรี ต้องกำหนดวงรีเป็น 2 ส่วน © 2005 Pearson Education
Deriving decision parameter (0,ry) © 2005 Pearson Education
Deriving decision parameter Region 1 : เพิ่มค่าจุดภาพในแนวแกน X ทีละ 1 แล้วหาค่า Y สมมติเราได้วาดจุดภาพ (xk, yk) ไปแล้ว ต่อไปคือพิจารณา เลือกจุด yk และ yk-1 ซึ่งทำได้โดยคำนวณค่าตัว แปรตัดสินใจ p1k ที่ midpoint © 2005 Pearson Education
Deriving decision parameter ค่าเป็นลบ หมายถึง midpoint อยู่ในวงกลม เราจะเลือก (xk+1,yk) ค่าเป็นบวก หมายถึง midpoint อยู่นอกวงกลมหรือบนวงรี เราจะเลือก (xk+1,yk-1) © 2005 Pearson Education
Deriving decision parameter © 2005 Pearson Education
Deriving decision parameter p1k < 0 ; p1k >= 0 ; © 2005 Pearson Education
Deriving decision parameter © 2005 Pearson Education
Deriving decision parameter Region 2 : เพิ่มค่าจุดภาพในแนวแกน y ทีละ 1 แล้วหาค่า X สมมติเราได้วาดจุดภาพ (xk, yk) ไปแล้ว ต่อไปคือพิจารณา เลือกจุด xk และ xk+1 ซึ่งทำได้โดยคำนวณค่าตัว แปรตัดสินใจ p2k ที่ midpoint © 2005 Pearson Education
Deriving decision parameter ค่าเป็นบวก หมายถึง midpoint อยู่นอกวงกลม เราจะเลือก (xk,yk+1) ค่าเป็นลบ หมายถึง midpoint อยู่ในวงกลมหรือบนวงรี เราจะเลือก (xk+1,yk+1) © 2005 Pearson Education
Deriving decision parameter © 2005 Pearson Education
Deriving decision parameter ถ้า เราเลือกจุดภาพที่ตำแหน่ง k+1 คือ ฉะนั้นเราคำนวณ มิเช่นนั้น เราเลือกจุดภาพที่ตำแหน่ง k+1 คือ © 2005 Pearson Education
Deriving decision parameter © 2005 Pearson Education
Midpoint Ellipse Algorithm Algorithm Exercise © 2005 Pearson Education
Midpoint Ellipse Algorithm Example 1. จงวาดวงรีที่มีรัศมี rx เท่ากับ 8 และมีรัศมี ry เท่ากับ 10 ซึ่งมีจุดศูนย์กลางอยู่ที่ (0, 0) 2. จงวาดวงรีที่มีรัศมี rx เท่ากับ 8 และมีรัศมี ry เท่ากับ 10 ซึ่งมีจุดศูนย์กลางอยู่ที่ (1, 2) © 2005 Pearson Education
More Bresenham’s Algorithm Bresenham's line algorithm (|m| ≤ 1 and X0 < Xend) y = mx + b y = m(xk+1) + b d2 d1 yk xk xk+1 © 2005 Pearson Education
More Bresenham’s Algorithm Bresenham's line algorithm (|m| ≤ 1 and Xend < X0) y = mx + b yk y = m(xk+1) + b d1 d2 xk-1 xk © 2005 Pearson Education