3.2 วงกลม(Circle)

          3.2.1 วงกลมตามทฤษฎีเชิงมุม

            สมการวงกลมสามารถเขียนในรูปสมการเชิงมุมได้ดังนี้

                        X =Xc + r* cosq

                        Y =Yc + r* sinq

            โดยที่ q มีค่าอยู่ระหว่าง 0 ถึง 2p เนื่องจาก ความยาวของส่วนโค้งมีค่าเท่ากับ r * q (มาจากสูตรเส้นรอบวงวกลม =2pr) และ r เป็นรัศมีของวงกลมมีค่าคงที่ ดังนั้น ส่วนโค้งของวงกลมจึงขึ้นกับ q จุดพิกัดที่จะ plot เพื่อลากเส้นต่อกันเป็นส่วนโค้งของวงกลม จึงขึ้นกับ q ด้วยเมื่อเราเปลี่ยนค่าของ q จาก0 ถึง 2p โดยเปลี่ยนไปทีละ dq แล้ว plot จุดพิกัดที่สอดคล้องกันก็จะได้วงกลมตามต้องการ

            จากสมการเชิงมุมดังกล่าวเราสามารถนำมาเขียนเป็น Algorithm ได้ดังนี้

1.      Input รัศมี(r) ,จุดศูนย์กลางวงกลม(Xc,Yc) และ จำนวนจุดที่ต้องการจะplot(n)

2.      คำนวณหา dq = 44/ (7*n)

3.      plot (r +Xc,0+Yc) เป็นจุดแรก

4.      คำนวณหาจุดที่จะ plot ต่อไป ดังนี้

         Xk+1 = Xc + r*cos(q)

         Yk+1 = Yc + r*sin(q)

          qk+1 = qk + dq

5.      plotจุด (Xk + 1,Yk + 1)

6.      ทำซ้ำ ข้อ 4,5 เป็นจำนวน n ครั้ง

 

 

 

          3.2.2 Midpoint Circle Algorithm

1.      Input รัศมี(r) ,จุดศูนย์กลางวงกลม(Xc,Yc) โดยจุดแรกที่จะ plot บนเส้นรอบวง ของ วงกลมที่มีศูนย์กลางอยู่ที่จุดกำเนิด คือ(X0,Y0) = (0,r)

2.      คำนวณค่าเริ่มต้นสำหรับการตัดสินใจในการคำนวณหาจุดที่จะ plot ต่อไป ดังนี้  P0 = 5/4 – r   (float) หรือ   P0 = 1- r   (Integer)

3.      ที่แต่ละตำแหน่ง Xk เริ่มที่ k = 0

IF  Pk < 0  then

    จุดต่อไปบนเส้นรอบวงสำหรับวงกลมที่มีจุดศูนย์กลางที่ (0,0) คือ (Xk + 1,Yk) และ Pk+1 = Pk +2Xk+1

Else

    จุดต่อไป คือ (Xk + 1,Yk - 1) และ Pk+1 = Pk +2Xk+1 + 1 – 2Yk+1

4.      กำหนดจุดที่สมมาตรใน 7 ส่วนที่เหลือ

5.      บวกจุดศูนย์กลางวงกลมกับจุดที่คำนวณได้แต่ละจุด ดังนี้

             X = X + Xc

             Y = Y +Yc

      จากนั้นจึงทำการplotจุด (X,Y)

6.      ทำซ้ำ ข้อ 3,4,5 จนกระทั่ง X>=Y

 

            สมมาตรของวงกลมทั้ง 8 ส่วนแสดงได้ดังนี้

 

 

 

 


Back  Next