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