Bitmap/Bresenham's line algorithm: Difference between revisions

Content added Content deleted
(Add Nimrod)
Line 1,616: Line 1,616:
myBitmap = drawLine myBitmap [0, 511] [511, 0] #((color 255 255 255))
myBitmap = drawLine myBitmap [0, 511] [511, 0] #((color 255 255 255))
display myBitmap</lang>
display myBitmap</lang>

=={{header|Nimrod}}==
<lang nimrod>import math

proc line(img: var Image, p, q: Point) =
let
dx = abs(q.x - p.x)
sx = if p.x < q.x: 1 else: -1
dy = abs(q.y - p.y)
sy = if p.y < q.y: 1 else: -1

var
p = p
q = q
err = (if dx > dy: dx else: -dy) div 2
e2 = 0

while true:
img[p] = Black
if p == q:
break
e2 = err
if e2 > -dx:
err -= dy
p.x += sx
if e2 < dy:
err += dx
p.y += sy</lang>


=={{header|OCaml}}==
=={{header|OCaml}}==