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 หมายถึง การลากเส้นเชื่อมจุดต่าง ๆ เข้าด้วยกัน