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}}== |