Add mandelbrot example
This commit is contained in:
parent
89b6b09be5
commit
84f193befd
1 changed files with 30 additions and 0 deletions
30
examples/mandelbrot.psl
Normal file
30
examples/mandelbrot.psl
Normal file
|
|
@ -0,0 +1,30 @@
|
||||||
|
foreign func putchar(c: i32) -> i32
|
||||||
|
|
||||||
|
func print(c: u8):
|
||||||
|
putchar(c as i32)
|
||||||
|
|
||||||
|
func mandelbrot():
|
||||||
|
let width = 120
|
||||||
|
let height = 40
|
||||||
|
mut y = 0
|
||||||
|
while y < height:
|
||||||
|
mut x = 0
|
||||||
|
while x < width:
|
||||||
|
let cx = (x as f32 + 0.5) / (width as f32) * 2.5 - 2.0
|
||||||
|
let cy = (y as f32 + 0.5) / (height as f32) * 2.0 - 1.0
|
||||||
|
mut tx = 0.0
|
||||||
|
mut ty = 0.0
|
||||||
|
mut i = 0
|
||||||
|
while i < 100 && (tx * tx + ty * ty < 4.0):
|
||||||
|
let newx = tx * tx - ty * ty + cx
|
||||||
|
ty = 2.0 * tx * ty + cy
|
||||||
|
tx = newx
|
||||||
|
i = i + 1
|
||||||
|
if i == 100:
|
||||||
|
print('X')
|
||||||
|
else:
|
||||||
|
print(' ')
|
||||||
|
|
||||||
|
x = x + 1
|
||||||
|
y = y + 1
|
||||||
|
print('\n')
|
||||||
Loading…
Add table
Reference in a new issue