#include <TFT_eSPI.h>
#include <SPI.h> // this is needed for display
#include <ArduinoTrace.h>
//This display 320 x 240 pixels;
TFT_eSPI tft = TFT_eSPI(); // Invoke custom library with default width and height
int rRed=115; //radius of red circle
int cx=120; //x center of the circle
int cy=160; //y center of the circle
//------ TODO: additional global variables declaration ----------//
#define MAX_GRADS 360
#define NUM_LINES 8
#define PI_DIV_180 0.0174532925 // Macro para eliminar magic number en conversion de grad -> rad
float sx = 0, sy = 1;
uint16_t x0=0, x1=0, yy0=0, yy1=0;
//---------------------------------------------------------------//
void setup(void) {
Serial.begin(115200);
Serial.println("INICIO:");
tft.init();
tft.setRotation(0);
// Drawing red circle
tft.drawCircle(cx,cy,rRed, TFT_RED);
//------- TODO: FOR cycle to draw green lines -----------------//
for (int i = 0; i < MAX_GRADS; i += (MAX_GRADS / NUM_LINES)) {
sx = cos((i - 90) * PI_DIV_180);
sy = sin((i - 90) * PI_DIV_180);
// sx * radio_inicio + cordenada_inicio
x0 = sx * 0 + cx; // Calcula la coordenada x del inicio de la línea
yy0 = sy * 0 + cy; // Calcula la coordenada y del inicio de la línea
// sx * radio_final + cordenada_inicio
x1 = sx * rRed + cx; // Calcula la coordenada x del final de la línea
yy1 = sy * rRed + cy; // Calcula la coordenada y del final de la línea
tft.drawLine(x0, yy0, x1, yy1, TFT_GREEN); // Dibuja la línea
}
//-------------------------------------------------------------//
}
void loop() {
}