mandelHari.py
def main():
import board
import displayio
import adafruit_displayio_ssd1306
import busio
import time
from adafruit_display_shapes.line import Line
import math
from hari.mandelbrot import mandelbrot, MAX_ITER
WIDTH, HEIGHT = 128, 64
displayio.release_displays()
def SetupDisplay():
i2c = busio.I2C(scl=board.GP3, sda=board.GP2)
display_bus = displayio.I2CDisplay(i2c, device_address=60)
display = adafruit_displayio_ssd1306.SSD1306(display_bus, width=WIDTH, height=HEIGHT, auto_refresh=False)
group = displayio.Group(max_size=1)
display.show(group)
return (display, group)
def SetupTileGrid():
bitmap = displayio.Bitmap(WIDTH, HEIGHT, 2)
palette = displayio.Palette(2)
palette[0] = 0
palette[1] = 0xFFFFFF
tileGrid = displayio.TileGrid(bitmap, pixel_shader=palette)
return bitmap, tileGrid
(mDisplay, mGroup) = SetupDisplay()
(mBitmap, mTileGrid) = SetupTileGrid()
mGroup.append(mTileGrid)
RE_START = -1.5
RE_END = -1
IM_START = -.25
IM_END = .25
xOffset = -0.8
RE_START = -2 + xOffset
RE_END = 2 + xOffset
IM_START = -1
IM_END = 1
MAX_ITER = 80
for x in range(0, WIDTH):
xx = RE_START + (x / WIDTH) * (RE_END - RE_START)
for y in range(0, HEIGHT):
yy = IM_START + (y / HEIGHT) * (IM_END - IM_START)
c = complex(xx, yy)
m = mandelbrot(c)
color = 1 - int(m/MAX_ITER)
if color>0: mBitmap[x,y] = 1
if x % 4 == 0: mDisplay.refresh()
mDisplay.refresh()
while True:
pass
Discussions
Become a Hackaday.io Member
Create an account to leave a comment. Already have an account? Log In.