from machine import Pin, I2C
import ssd1306
import array
import math
# ESP32 Pin assignment
i2c = I2C(0, scl=Pin(22), sda=Pin(21))
oled_width = 128
oled_height = 64
oled = ssd1306.SSD1306_I2C(oled_width, oled_height, i2c)
class Poligono(): # Dibuja un polígono regular
def __init__(self, centro, lados, radio, rotacion):
self.xc = centro[0]
self.yc = centro[1]
self.lados = lados
self.radio = radio
self.rotacion = rotacion
def calcula_vertices(self):
vertices=[]
for i in range (5):
grados=((2*math.pi*i)/self.lados)-self.rotacion
ang=grados
xn=int(self.xc*self.radio*(math.sin(ang)))
vertices.append(xn)
yn=int(self.yc*self.radio*(math.cos(ang)))
vertices.append(yn)
return(vertices)
def dibuja(self): # Dibuja el polígono en la pantalla
oled.poly(0, 0, array.array('h', self.calcula_vertices()))
pol=Poligono([64,32],5,31,0)
pol.dibuja()
oled.show()