Initial data commit
This commit is contained in:
parent
72d218235f
commit
f23f22d71c
199087 changed files with 3378941 additions and 0 deletions
|
|
@ -0,0 +1,84 @@
|
|||
bresline = false // space toggles, for comparison
|
||||
|
||||
rB = 255 : gB = 255 : bB = 224
|
||||
rL = 0 : gL = 0 : bL = 255
|
||||
|
||||
sub round(x)
|
||||
return int(x + .5)
|
||||
end sub
|
||||
|
||||
sub plot(x, y, c, steep)
|
||||
// plot the pixel at (x, y) with brightness c (where 0 <= c <= 1)
|
||||
|
||||
local t, C
|
||||
|
||||
if steep then t = x : x = y : y = t end if
|
||||
C = 1 - c
|
||||
color rL * c + rB * C, gL * c + gB * C, bL * c + bB * C
|
||||
|
||||
dot x, y
|
||||
end sub
|
||||
|
||||
sub plot2(x, y, f, xgap, steep)
|
||||
plot(x, y, (1 - f) * xgap, steep)
|
||||
plot(x, y + 1, f * xgap, steep)
|
||||
end sub
|
||||
|
||||
sub draw_line(x0, y0, x1, y1)
|
||||
local steep, t, dx, dy, gradient, xend, yend, xgap, xpxl1, ypxl1, xpxl2, ypxl2, intery
|
||||
|
||||
if bresline then
|
||||
line x0, y0, x1, y1
|
||||
return
|
||||
end if
|
||||
steep = abs(y1 - y0) > abs(x1 - x0)
|
||||
if steep then
|
||||
t = x0 : x0 = y0 : y0 = t
|
||||
t = x1 : x1 = y1 : y1 = t
|
||||
end if
|
||||
if x0 > x1 then
|
||||
t = x0 : x0 = x1 : x1 = t
|
||||
t = y0 : y0 = y1 : y1 = t
|
||||
end if
|
||||
|
||||
dx = x1 - x0
|
||||
dy = y1 - y0
|
||||
if dx = 0 then
|
||||
gradient = 1
|
||||
else
|
||||
gradient = dy / dx
|
||||
end if
|
||||
|
||||
// handle first endpoint
|
||||
xend = round(x0)
|
||||
yend = y0 + gradient * (xend - x0)
|
||||
xgap = 1 - frac(x0 + 0.5)
|
||||
xpxl1 = xend // this will be used in the main loop
|
||||
ypxl1 = int(yend)
|
||||
plot2(xpxl1, ypxl1, frac(yend), xgap, steep)
|
||||
intery = yend + gradient // first y-intersection for the main loop
|
||||
|
||||
// handle second endpoint
|
||||
xend = round(x1)
|
||||
yend = y1 + gradient * (xend - x1)
|
||||
xgap = frac(x1 + 0.5)
|
||||
xpxl2 = xend // this will be used in the main loop
|
||||
ypxl2 = int(yend)
|
||||
plot2(xpxl2, ypxl2, frac(yend), xgap, steep)
|
||||
|
||||
// main loop
|
||||
for x = xpxl1 + 1 to xpxl2 - 1
|
||||
plot2(x, int(intery), frac(intery), 1, steep)
|
||||
intery = intery + gradient
|
||||
next x
|
||||
end sub
|
||||
|
||||
w = 640 : h = 480
|
||||
open window w, h
|
||||
|
||||
color 0, 0, 255
|
||||
|
||||
draw_line(0, 0, 200, 200)
|
||||
draw_line(w, 0, 200, 200)
|
||||
draw_line(0, h, 200, 200)
|
||||
draw_line(w, h, 200, 200)
|
||||
Loading…
Add table
Add a link
Reference in a new issue