Cantor set: Difference between revisions
Content deleted Content added
Add Rust implementation |
|||
Line 2,234: | Line 2,234: | ||
███ ███ ███ ███ |
███ ███ ███ ███ |
||
█ █ █ █ █ █ █ █</pre> |
█ █ █ █ █ █ █ █</pre> |
||
=={{header|QB64}}== |
|||
{{trans|FreeBASIC}} |
|||
Note: Other languages will need to zero out the a() array. In QB64 all arrays are initialized to zero at program start. |
|||
<lang qb64>_Title "Cantor Set" |
|||
Dim Shared As Integer sw, sh, wide, high |
|||
sw = 800: sh = 200: wide = 729: high = 7 |
|||
Dim Shared As Integer a(wide, high) |
|||
Screen _NewImage(sw, sh, 8) |
|||
Cls , 15: Color 0 |
|||
Call calc(0, wide, 1) |
|||
Call CantorSet |
|||
Sleep |
|||
System |
|||
Sub calc (start As Integer, length As Integer, index As Integer) |
|||
Dim As Integer i, j, newLength |
|||
newLength = length \ 3 |
|||
If newLength = 0 Then Exit Sub |
|||
For j = index To high - 1 |
|||
For i = start + newLength To start + newLength * 2 - 1 |
|||
a(i, j) = 1 |
|||
Next |
|||
Next |
|||
Call calc(start, newLength, index + 1) |
|||
Call calc(start + newLength * 2, newLength, index + 1) |
|||
End Sub |
|||
Sub CantorSet |
|||
Dim As Integer i, j, x, y |
|||
For y = 0 To high - 1 |
|||
j = y + 1 |
|||
For x = 0 To wide - 1 |
|||
i = x + 34 |
|||
If a(x, y) = 0 Then Line (i, j * 24 - 5)-(i, j * 24 + 17) |
|||
Next |
|||
Next |
|||
End Sub</lang> |
|||
=={{header|Racket}}== |
=={{header|Racket}}== |