Skip to content

Instantly share code, notes, and snippets.

@Tiza59
Created March 21, 2021 17:06
Show Gist options
  • Select an option

  • Save Tiza59/645020f014e0008564c07fe91faeb2c9 to your computer and use it in GitHub Desktop.

Select an option

Save Tiza59/645020f014e0008564c07fe91faeb2c9 to your computer and use it in GitHub Desktop.
Mandelbrot set rendered with few ASCII characters. Swift 5+ version derived from old C-Program
// ASCII Mandelbrot Set
let left:Float = -2.0
let right:Float = 1.0
let stepsX = 150
let deltaX:Float = (right - left) / Float(stepsX)
let top:Float = 1.5
let bottom:Float = -1.5
let stepsY = 60
let deltaY:Float = -(top - bottom) / Float(stepsY)
var x, y, k:Int
var b = [" ", ".", ":", ",", ";", "!", "/", ">", ")", "|", "&", "I", "H", "%", "*", "#"]
var r, i, z, Z, t, c, C: Float
var myInt:Int
var u:Double
for i in stride(from: top, through: bottom, by: deltaY) {
for r in stride(from: left, to: right, by: deltaX) {
z = 0
Z = 0
var k = 0
while k < 112 {
t = z*z - Z*Z + r
Z = 2*z*Z + i
z=t
if (z*z + Z*Z > 10) { break }
k += 1
}
print( b[k%16], terminator:"")
}
print("")
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment