diff options
| author | Akshay Nair <phenax5@gmail.com> | 2025-02-14 21:06:23 +0530 |
|---|---|---|
| committer | Akshay Nair <phenax5@gmail.com> | 2025-02-14 21:06:23 +0530 |
| commit | 266493157c27710f323d589a20cbc6fb78f9fc8a (patch) | |
| tree | 06a2f7009448537a761e4d7e540adb53e6ebe161 | |
| parent | 49b1cb6328f8344b2c7b83934975a6fd00a0fce3 (diff) | |
| download | uiua-creative-coding-266493157c27710f323d589a20cbc6fb78f9fc8a.tar.gz uiua-creative-coding-266493157c27710f323d589a20cbc6fb78f9fc8a.zip | |
Add levy c curve
| -rw-r--r-- | 3-levy-c-curve/main.ua | 65 | ||||
| -rw-r--r-- | 3-levy-c-curve/output-10.png | bin | 0 -> 10500 bytes | |||
| -rw-r--r-- | 3-levy-c-curve/output.png | bin | 0 -> 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 Binary files differnew file mode 100644 index 0000000..78d7bd9 --- /dev/null +++ b/3-levy-c-curve/output-10.png diff --git a/3-levy-c-curve/output.png b/3-levy-c-curve/output.png Binary files differnew file mode 100644 index 0000000..78d7bd9 --- /dev/null +++ b/3-levy-c-curve/output.png |
