Add tasks for all the new languages
This commit is contained in:
parent
9dc3c2bb62
commit
bba7bfd280
13208 changed files with 134745 additions and 0 deletions
|
|
@ -0,0 +1,35 @@
|
|||
function bresLine(sequence screenData, integer x0, integer y0, integer x1, integer y1, integer colour)
|
||||
-- The line algorithm
|
||||
integer deltaX = abs(x1-x0),
|
||||
deltaY = abs(y1-y0),
|
||||
stepX = iff(x0<x1,1,-1),
|
||||
stepY = iff(y0<y1,1,-1),
|
||||
lineError = iff(deltaX>deltaY,deltaX,-deltaY),
|
||||
prevle
|
||||
|
||||
lineError = round(lineError/2,1)
|
||||
while 1 do
|
||||
if x0>=1 and x0<=length(screenData)
|
||||
and y0>=1 and y0<=length(screenData[x0]) then
|
||||
screenData[x0][y0] = colour
|
||||
end if
|
||||
if x0=x1 and y0=y1 then exit end if
|
||||
prevle = lineError
|
||||
if prevle>-deltaX then
|
||||
lineError -= deltaY
|
||||
x0 += stepX
|
||||
end if
|
||||
if prevle<deltaY then
|
||||
lineError += deltaX
|
||||
y0 += stepY
|
||||
end if
|
||||
end while
|
||||
return screenData
|
||||
end function
|
||||
|
||||
sequence screenData = new_image(400,300,black)
|
||||
screenData = bresLine(screenData,100,1,50,300,red)
|
||||
screenData = bresLine(screenData,1,180,400,240,green)
|
||||
screenData = bresLine(screenData,200,1,400,150,white)
|
||||
screenData = bresLine(screenData,195,1,205,300,blue)
|
||||
write_ppm("bresenham.ppm",screenData)
|
||||
Loading…
Add table
Add a link
Reference in a new issue