aboutsummaryrefslogtreecommitdiff
path: root/2-dragon
diff options
context:
space:
mode:
Diffstat (limited to '2-dragon')
-rw-r--r--2-dragon/main.ua30
-rw-r--r--2-dragon/output-12.pngbin0 -> 36392 bytes
-rw-r--r--2-dragon/output.pngbin1388 -> 36392 bytes
3 files changed, 17 insertions, 13 deletions
diff --git a/2-dragon/main.ua b/2-dragon/main.ua
index 86ece69..be47b59 100644
--- a/2-dragon/main.ua
+++ b/2-dragon/main.ua
@@ -1,18 +1,22 @@
-W ← 200
-H ← 200
-S ← 4
-I ← 2
+W ← 600 # width
+H ← 600 # height
+S ← 4 # size of segment
+I ← 12 # iterations
-P ← ℂ:
+StartLine ← [(ℂ: (-(÷2 S) ÷2 W) (÷2 H)) (ℂ: (+(÷2 S) ÷2 W) (÷2 H))]
+Rotate ← +× ⊙⤚- ℂ: ∿+η ⊙∿.
+Dragon ← ⍥(⊂ Rotate η ⊣. ⊙(↘1) ⇌.)I StartLine
-PStart ← [(P (-(÷2 S) ÷2 W) (÷2 H)) (P (+(÷2 S) ÷2 W) (÷2 H))]
+# Center the image
+MinX ← /↧ ◌°ℂ Dragon
+MaxX ← /↥ ◌°ℂ Dragon
+MinY ← /↧ ◌:°ℂ Dragon
+MaxY ← /↥ ◌:°ℂ Dragon
+CenteredDragon ← +ℂ: (-MinX ÷2 +MinX -MaxX W) (-MinY ÷2 +MinY -MaxY H) Dragon
-RotP ← +× ⊙⤚- P ∿+η ⊙∿.
-Dragon ← ⍥(⊂ RotP η ⊣. ⇌.)I PStart
-IsOnLine ← <0.01 ⌵- /+ ⊙(⌵-⊃⊢⊣)◡(⌵-) ⊟
-IsOnDragon ← ⊙◌ ≥1 /+ ≡(IsOnLine⊃⊢⊣) ⧈∘ 2 Dragon
+IsOnLine ← ◌: <0.01 ⌵- /+ ⊙(⌵-⊃⊢⊣)◡(⌵-)
+IsOnDragon ← ≥1 /+ ≡(⨬(0◌)IsOnLine ◡(≤S⌵-⊢)) ⧈∘ 2 CenteredDragon
-ToPix ← ⨬(0_0_0)(255_255_255) IsOnDragon
-
-Img ← ∵ToPix (⍉ ⊞P ⇡W⇡H)
+ToPix ← ⨬(0_0_0)(⊂: 0.3_0.05 +0.1 ÷W ◌°ℂ) IsOnDragon.
+Img ← ∵ToPix (⍉ ⊞(ℂ:) ⇡W⇡H)
&fwa "./2-dragon/output.png" img "png" Img
diff --git a/2-dragon/output-12.png b/2-dragon/output-12.png
new file mode 100644
index 0000000..aa7b485
--- /dev/null
+++ b/2-dragon/output-12.png
Binary files differ
diff --git a/2-dragon/output.png b/2-dragon/output.png
index 6c02658..aa7b485 100644
--- a/2-dragon/output.png
+++ b/2-dragon/output.png
Binary files differ