27 lines
428 B
Nim
27 lines
428 B
Nim
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
|