2.5 Polyline Algorithm

            จากความสัมพันธ์ของ(XW,YW)และ(XV,YV) เราสามารถนำมาเขียนเป็น Algorithm ได้ดังนี้

 

Void   polyline(int n,Coordinatelist    x,y)

{

            int                   XS,YS            // array[0.. MaxNumpoint-1]

            double           SX,SY           

            int                   I, screen_sx, screen_sy

SX = XVmax – XVmin / XWmax – XWmin

SY = YVmax – YVmin / YWmax – YWmin

screen_sx = XSmax – XSmin

screen_sy = YSmax – YSmin

for( I=0 ; I<n ; I++ )

{

            x[I] = SX*(x[I] – XWmin ) + XVmin

            y[I] = SY*(Y[I] – YWmin ) + YVmin

}

for( I=0 ; I<n ; I++ )

{

            XS[I] = Round(screen_sx*x[I]+XSmin)

            YS[I] = Round(screen_sy*y[I]+YSmin)

}

for( I=0 ; I<n-1 ; I++ )

{

            line(XS[I],YS[I],XS[I+1],YS[I+1])

}

}

 

 

            จาก Algorithm จะสังเกตเห็นว่ามีการวน loop 3 loop

            Loopแรก หมายถึง การแปลงพิกัดจุดจาก world coordinate ใน Window มาเป็น NDC ใน Viewprot

            Loopที่ 2 หมายถึง การแปลง NDC มาเป็น coordinate บน จอภาพ ทั้งนี้ จอภาพบริเวณที่ใช้แสดงผลจะต้องเป็นสี่เหลี่ยม จัตุรัสด้วย จึงจะทำให้ภาพที่ได้ถูกต้อง

            Loopที่ 3 หมายถึง การลากเส้นเชื่อมจุดต่าง ๆ เข้าด้วยกัน

 

Back Next