#include <Adafruit_ILI9341.h>
#include <Adafruit_FT6206.h>
Adafruit_ILI9341 tft(10,9);
Adafruit_FT6206 ts;
uint16_t brightnessAdjust(uint16_t color, int brightness) {
uint8_t r = (color >> 11) & 0x1f;
uint8_t g = (color >> 5) & 0x3f;
uint8_t b = (color & 0x1f);
r = (r * brightness)/100;
g = (g * brightness)/100;
b = (b * brightness)/100;
if(r >= 0x1f) r = 0x1f;
if(g >= 0x3f) g = 0x3f;
if(b >= 0x1f) b = 0x1f;
return (r << 11) | (g << 5) | b;
}
int touch_x() {
TS_Point point = ts.getPoint();
return 240-point.x;
}
int touch_y() {
TS_Point point = ts.getPoint();
return 320-point.y;
}
void drawPoint(int x, int y, int r, uint16_t color) {
/*for(int i=0; i<2*r; i++) {
int m = 100 - (100 * sin((i*3.14)/(2*r)));
for(int j=0; j<2*r; j++) {
int brightness = (100 + m) + 100 - (100 * sin((j*3.14)/(2*r)));
tft.drawPixel(x+j, y+i, brightnessAdjust(color, brightness));
}
}*/
for(int i=0; i<2*r; i++) {
int m = 100 * sin((i*3.14)/(4*r));
int brightness = 200 - m;
tft.fillCircle(x, y, 2*r-i, brightnessAdjust(color, brightness));
}
}
void setup() {
tft.begin();
ts.begin();
tft.fillScreen(0xffff);
}
void loop() {
if(ts.touched()) {
drawPoint(touch_x(), touch_y(), 20, 0xfbef);
}
}