Munching squares: Difference between revisions
Content added Content deleted
(Still a draft; description assumes far too much about the implementation (what's a color table?)) |
(added ocaml) |
||
Line 17: | Line 17: | ||
ArrayPlot[Array[BitXor, {511, 511}]] |
ArrayPlot[Array[BitXor, {511, 511}]] |
||
</lang> |
</lang> |
||
=={{header|OCaml}}== |
|||
<lang ocaml>open Graphics |
|||
let () = |
|||
open_graph ""; |
|||
resize_window 256 256; |
|||
for y = 0 to pred (size_y()) do |
|||
for x = 0 to pred (size_x()) do |
|||
let v = (x lxor y) land 0xFF in |
|||
set_color (rgb v (255 - v) 0); |
|||
plot x y |
|||
done; |
|||
done; |
|||
ignore(read_key())</lang> |
|||
Run with: |
|||
$ ocaml graphics.cma xor_pattern.ml |
Revision as of 17:47, 28 November 2011
Munching squares is a draft programming task. It is not yet considered ready to be promoted as a complete task, for reasons that should be found in its talk page.
Render a graphical pattern where each pixel is colored by the value of 'x xor y' from a color table.
Mathematica
Output #1: <lang Mathematica> ListDensityPlot[
Table[Table[ FromDigits[BitXor[IntegerDigits[x, 2, 8], IntegerDigits[y, 2, 8]], 2], {x, 0, 255}], {y, 0, 255}]]
</lang>
Output #2: <lang Mathematica> ArrayPlot[Array[BitXor, {511, 511}]] </lang>
OCaml
<lang ocaml>open Graphics
let () =
open_graph ""; resize_window 256 256; for y = 0 to pred (size_y()) do for x = 0 to pred (size_x()) do let v = (x lxor y) land 0xFF in set_color (rgb v (255 - v) 0); plot x y done; done; ignore(read_key())</lang>
Run with:
$ ocaml graphics.cma xor_pattern.ml