Chaos game: Difference between revisions

(Added Uiua solution)
(One intermediate revision by one other user not shown)
Line 1,175:
 
{{FormulaeEntry|page=https://formulae.org/?script=examples/Chaos_game}}
 
'''Solution'''
 
When using n points equally spaced over a circle we get a [https://en.wikipedia.org/wiki/N-flake Sierpiński n-gon]. However, the proportion (1/2 for a triangle) is different according to the following formula:
 
[[File:Fōrmulæ - Chaos game 01.png]]
 
[[File:Fōrmulæ - Chaos game 02.png]]
 
[[File:Fōrmulæ - Chaos game 03.png]]
 
The program is:
 
[[File:Fōrmulæ - Chaos game 04.png]]
 
'''Test cases'''
 
[[File:Fōrmulæ - Chaos game 05.png]]
 
[[File:Fōrmulæ - Chaos game 06.png]]
 
Notice that the Sierpiński's 4-gon is NOT the [https://en.wikipedia.org/wiki/Sierpi%C5%84ski_carpet Sierpiński carpet], it is a solid square
 
=={{header|FutureBasic}}==
Line 3,481 ⟶ 3,503:
Dim ← 500
Points ← [[50 ⌊÷2Dim] [-50Dim 50] [-50Dim -50Dim]]
# Uncomment to try different square or pentagonal references.
# Points ← [[50 50] [-50Dim 50] [50 -50Dim][-50Dim -50Dim]]
# Points ← [[50 ⌊÷2Dim] [⌊×0.4Dim 50] [⌊×0.4Dim -50Dim] [-50Dim 120] [-50Dim -120Dim]]
Colours ← [[1 0 0] [0 1 0] [0 0 1] [1 1 0] [1 0 1] [0 1 1]]
Rand ← ⌊×⚂
 
⍜(⊡|+[1 1 1]) Points ↯Dim_Dim_3 0
∧(⍜(⊡|[1 1 1]◌))Points
⊟Rand Dim Rand Dim
⍥(
Rand⧻Points
# Set next point and colour based on target.
⊃(⌊÷2+ ⊡:Points|⊙◌⍜⊡1⊙◌⊡:↯3 0Colours)
⟜⍜⊡◌⊙:
⟜⍜⊡(◌)⊙:
)10000
)20000
# Uncomment to save image.
# &fwa "UiuaChaosGameSerpinski.png" &ime "png"
 
</syntaxhighlight>
{{out}}
2,120

edits