# Solution

Clipline (40, 80, 120, 30, 20, 60, 20, 40)

{

code1 = 0000

done = 0

code2 = 0000

draw = 0

while (done == 0)

{

code1 = encode (x1, y1)

encode (40, 80)

{

if (x < xwmin) (40 < 20)

false

if (x > xwmax) (40 > 40)

false

if (y < ywmin) (80 < 20)

false

if (y > ywmax) (80 > 60) true

code = 1000

}

So, code1 = 1000

code2 = encode (120, 30)

encode (120, 30)

{

if (x < xwmin) (120 < 20)

false

if (x > xwmax) (120 > 40) true

code = 0010

if (y < ywmin) (30 < 20)

false

if (y > ywmax) (30 > 60) false

}

code2 = 0010

ans = accept (code1, code2)

accept (1000, 0010)

{

if (! (a ! b)) !(1000 ! 0010)

false

else

return 0

}

So, ans = 0

if (ans == 1)

{

false

}

else

{

ans = reject (code1, code2)

}

reject (1000, 0010)

{

if (a & b) (1000 & 0010)

false

else

return 0

}

So, ans = 0

if (ans == 1)

{

false

}

else

{

if (inside (code1))

false

if (x1 != x2)

m = (y2 - y1) / (x2 - x1)

= (30 -80) / (120 - 40)

= (-50) / (80)

= - 0.625

}

if (code1 & lb)

{

false

}

else if (code1 && b)

{

false

}

else if (code1 & bb)

{

false

}

else if (code1 & tb) true (1000 & 1000)

{

x1 = y1 + (ymax - y1) / m

y1 = ymax

}

}

while (done == 0)

{

code1 = 0010 = encode (112, 60)

code2 = 0010 = encode (120, 30)

ans = accept (code1, code2)

if (ans == 1)

{

flase

}

else

{

ans = 1 = reject (code1, code2)

if (ans == 1)

true

done = 1

}

}

while (draw == 1) true

dda (112, 60, 120, 30)

}

Double Buffering In Computer Graphics

2D Viewing Plane In Computer Graphics