Anonymous user
Bitmap/Midpoint circle algorithm: Difference between revisions
m
Alphabetical place for OCaml
m (Kotlin before Lua) |
m (Alphabetical place for OCaml) |
||
Line 1,792:
................
................</pre>
=={{Header|OCaml}}==▼
<lang ocaml>let raster_circle ~img ~color ~c:(x0, y0) ~r =▼
let plot = put_pixel img color in▼
let x = 0▼
and y = r▼
and m = 5 - 4 * r▼
in▼
let rec loop x y m =▼
plot (x0 + x) (y0 + y);▼
plot (x0 + y) (y0 + x);▼
plot (x0 - x) (y0 + y);▼
plot (x0 - y) (y0 + x);▼
plot (x0 + x) (y0 - y);▼
plot (x0 + y) (y0 - x);▼
plot (x0 - x) (y0 - y);▼
plot (x0 - y) (y0 - x);▼
let y, m =▼
if m > 0▼
then (y - 1), (m - 8 * y)▼
else y, m▼
in▼
if x <= y then▼
let x = x + 1 in▼
let m = m + 8 * x + 4 in▼
loop x y m▼
in▼
loop x y m▼
;;</lang>▼
=={{header|Perl}}==
Line 2,230 ⟶ 2,260:
$b.raster-circle(16, 16, 15, Pixel.new(R=>0, G=>0, B=>100));
say $b.P3;</lang>
▲=={{Header|OCaml}}==
▲<lang ocaml>let raster_circle ~img ~color ~c:(x0, y0) ~r =
▲ let plot = put_pixel img color in
▲ let x = 0
▲ and y = r
▲ and m = 5 - 4 * r
▲ in
▲ let rec loop x y m =
▲ plot (x0 + x) (y0 + y);
▲ plot (x0 + y) (y0 + x);
▲ plot (x0 - x) (y0 + y);
▲ plot (x0 - y) (y0 + x);
▲ plot (x0 + x) (y0 - y);
▲ plot (x0 + y) (y0 - x);
▲ plot (x0 - x) (y0 - y);
▲ plot (x0 - y) (y0 - x);
▲ let y, m =
▲ if m > 0
▲ then (y - 1), (m - 8 * y)
▲ else y, m
▲ in
▲ if x <= y then
▲ let x = x + 1 in
▲ let m = m + 8 * x + 4 in
▲ loop x y m
▲ in
▲ loop x y m
▲;;</lang>
=={{header|REXX}}==
|