Content deleted Content added
mNo edit summary |
|||
Line 36:
dy = y2 - y1
gradient = dy / dx
if abs(dx) > abs(dy) then
''// handle first endpoint''
xend = round(x1)▼
yend = y1 + gradient * (xend - x1)▼
xgap = rfpart(x1 + 0.5)▼
xpxl1 = xend '' // this will be used in the main loop''▼
ypxl1 = ipart(yend)▼
plot(xpxl1, ypxl1, rfpart(yend) * xgap)▼
plot(xpxl1, ypxl1 + 1, fpart(yend) * xgap)▼
intery = yend + gradient ''// first y-intersection for the main loop''▼
''// handle second endpoint''
xend = round(x2)▼
yend = y2 + gradient * (xend - x2)▼
xgap = fpart(x2 + 0.5)▼
xpxl2 = xend '' // this will be used in the main loop''▼
ypxl2 = ipart(yend)▼
plot(xpxl2, ypxl2, rfpart(yend) * xgap)▼
plot(xpxl2, ypxl2 + 1, fpart(yend) * xgap)▼
''//
'''for''' x '''from''' xpxl1 + 1 '''to''' xpxl2 - 1 '''do'''▼
▲ xend = round(x1)
plot(x, ipart(intery), rfpart(intery))▼
▲ yend = y1 + gradient * (xend - x1)
▲ xgap = rfpart(x1 + 0.5)
▲ xpxl1 = xend '' // this will be used in the main loop''
▲ ypxl1 = ipart(yend)
▲ plot(xpxl1, ypxl1, rfpart(yend) * xgap)
▲ plot(xpxl1, ypxl1 + 1, fpart(yend) * xgap)
▲ intery = yend + gradient ''// first y-intersection for the main loop''
▲ ''// handle second endpoint''
▲ xend = round(x2)
▲ yend = y2 + gradient * (xend - x2)
▲ xgap = fpart(x2 + 0.5)
▲ xpxl2 = xend '' // this will be used in the main loop''
▲ ypxl2 = ipart(yend)
▲ plot(xpxl2, ypxl2, rfpart(yend) * xgap)
▲ plot(xpxl2, ypxl2 + 1, fpart(yend) * xgap)
▲ '''for''' x '''from''' xpxl1 + 1 '''to''' xpxl2 - 1 '''do'''
▲ plot(x, ipart(intery), rfpart(intery))
plot(x, ipart(intery) + 1, fpart(intery))
intery = intery + gradient
'''repeat'''
else
''//handle "vertical" lines same code as above but X takes the role of Y
'''end function'''
</code>
|