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()