aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--3-levy-c-curve/main.ua65
-rw-r--r--3-levy-c-curve/output-10.pngbin0 -> 10500 bytes
-rw-r--r--3-levy-c-curve/output.pngbin0 -> 10500 bytes
3 files changed, 65 insertions, 0 deletions
diff --git a/3-levy-c-curve/main.ua b/3-levy-c-curve/main.ua
new file mode 100644
index 0000000..e59fd66
--- /dev/null
+++ b/3-levy-c-curve/main.ua
@@ -0,0 +1,65 @@
+W ← 600 # width
+H ← 600 # height
+S ← ÷2 W # size of segment
+I ← 10 # iterations
+E ← 0.0001 # error for 0
+
+StartLine ← [(ℂ: (-(÷2 S) ÷2 W) ÷3 H) (ℂ: (+(÷2 S) ÷2 W) ÷3 H)]
+
+ArcTan ← ⨬(°∿ ÷ √+1×. .)(×η±) =∞⌵ .
+Quadrant ← ⍣(
+ π ⍤. × ⊙(≤0) ≤0
+| η◌ ⍤.<0
+| (+πη) ⍤.<0◌
+| 0◌◌
+) ∩(⨬∘(0◌) ≤E⌵.)
+Theta ← +⊙Quadrant⌵ ArcTan◡÷: ⊙-- ⊙: ∩(°ℂ)
+Split ← ⊂⊂: +,ℂ: ⊙×× ⊙, ⊙⊙(◡(÷√2⌵-)) ⊃(∿+η)∿ +(÷2η) ◡Theta°⊟
+Join ← ⊂ ⨬∘(↙-1⧻.) =◡(⊓⊣⊢)
+MkCurve ← ⍥(/Join ≡Split ⧈∘2)I
+
+# Theta (ℂ:100 131.66666666666666) (ℂ:165 131.66666666666663)
+# &p Curve
+
+# Curveu ← [
+# # (ℂ: 35 66.66666666666667)
+# # (ℂ: 2.500000000000014 99.16666666666666)
+# # (ℂ: 35.00000000000001 131.66666666666666)
+# # (ℂ: 67.5 164.16666666666666)
+# (ℂ: 100 131.66666666666666)
+# (ℂ: 132.5 99.16666666666666)
+# (ℂ: 165 131.66666666666663)
+# # (ℂ: 197.49999999999997 99.16666666666664)
+# # (ℂ: 165 66.66666666666667)
+# ]
+
+# Quadrand ¯4 ¯4
+# Theta (ℂ: 0 0) (ℂ: 4 0)
+# Theta (ℂ: 0 0) (ℂ: 0 4)
+# Theta (ℂ: 0 0) (ℂ: ¯4 0)
+# Theta (ℂ: 0 0) (ℂ: 0 ¯4)
+# Theta (ℂ: 0 0) (ℂ: 4 4)
+# Theta (ℂ: 0 0) (ℂ: ¯4 4)
+# Theta (ℂ: 0 0) (ℂ: ¯4 ¯4)
+# Theta (ℂ: 0 0) (ℂ: 4 ¯4)
+
+# (ℂ:35 66.66666666666667)
+# (ℂ:35.00000000000001 131.66666666666666)
+# (ℂ:165 66.66666666666667)
+
+Start ← [
+ (ℂ:100 131.66666666666666)
+ (ℂ:165 131.66666666666663)
+]
+# Start ← [(ℂ: 35 66.6667) (ℂ: 2.500014 99.1666)]
+# Start ← [(ℂ: 0 0) (ℂ: ¯4 0)]
+# CC ← Split Start
+# Curve ← ⊂Start CC
+# +(ℂ: 100 100) ×10
+
+Curve ← MkCurve StartLine
+IsOnLine ← ◌: <0.01 ⌵- /+ ⊙(⌵-⊃⊢⊣)◡(⌵-)
+IsOnCurve ← ≥1 /+ ≡(⨬(0◌)IsOnLine ◡(≤S⌵-⊢)) ⧈∘2 Curve
+ToPix ← ⨬(0_0_0)(⊂: 0.3_0.05 +0.1 ÷W ◌°ℂ) IsOnCurve.
+Img ← ∵ToPix (⍉ ⊞(ℂ:) ⇡W⇡H)
+&fwa "./3-levy-c-curve/output.png" img "png" Img
diff --git a/3-levy-c-curve/output-10.png b/3-levy-c-curve/output-10.png
new file mode 100644
index 0000000..78d7bd9
--- /dev/null
+++ b/3-levy-c-curve/output-10.png
Binary files differ
diff --git a/3-levy-c-curve/output.png b/3-levy-c-curve/output.png
new file mode 100644
index 0000000..78d7bd9
--- /dev/null
+++ b/3-levy-c-curve/output.png
Binary files differ