Initial data commit
This commit is contained in:
parent
72d218235f
commit
f23f22d71c
199087 changed files with 3378941 additions and 0 deletions
|
|
@ -0,0 +1,40 @@
|
|||
let draw_line ~img ~color ~p0:(x0,y0) ~p1:(x1,y1) =
|
||||
|
||||
let steep = abs(y1 - y0) > abs(x1 - x0) in
|
||||
|
||||
let plot =
|
||||
if steep
|
||||
then (fun x y -> put_pixel img color y x)
|
||||
else (fun x y -> put_pixel img color x y)
|
||||
in
|
||||
|
||||
let x0, y0, x1, y1 =
|
||||
if steep
|
||||
then y0, x0, y1, x1
|
||||
else x0, y0, x1, y1
|
||||
in
|
||||
let x0, x1, y0, y1 =
|
||||
if x0 > x1
|
||||
then x1, x0, y1, y0
|
||||
else x0, x1, y0, y1
|
||||
in
|
||||
|
||||
let delta_x = x1 - x0
|
||||
and delta_y = abs(y1 - y0) in
|
||||
let error = -delta_x / 2
|
||||
and y_step =
|
||||
if y0 < y1 then 1 else -1
|
||||
in
|
||||
let rec loop x y error =
|
||||
plot x y;
|
||||
if x <= x1 then
|
||||
let error = error + delta_y in
|
||||
let y, error =
|
||||
if error > 0
|
||||
then (y + y_step), (error - delta_x)
|
||||
else y, error
|
||||
in
|
||||
loop (succ x) y error
|
||||
in
|
||||
loop x0 y0 error
|
||||
;;
|
||||
Loading…
Add table
Add a link
Reference in a new issue