#include <Adafruit_ILI9341.h>
Adafruit_ILI9341 tft(10, 9);
void draw3D(int x0, int y0) {
tft.drawLine(x0,y0, x0+100,y0+30, 0x0);
tft.drawLine(x0+100,y0+30, x0+280,y0, 0x0);
tft.drawLine(x0+280,y0, x0+180,y0-30, 0x0);
tft.drawLine(x0+180,y0-30, x0,y0, 0x0);
y0+=10;
tft.drawLine(x0,y0, x0+100,y0+30, 0x0);
tft.drawLine(x0+100,y0+30, x0+280,y0, 0x0);
y0-=10;
tft.drawLine(x0,y0, x0,y0+10, 0x0);
tft.drawLine(x0+100,y0+30, x0+100,y0+40, 0x0);
tft.drawLine(x0+280,y0, x0+280,y0+10, 0x0);
for(int i=0; i<30; i+=3) {
tft.drawLine(x0+6*i,y0-i, x0+100+6*i,y0+30-i, 0x0);
delay(100);
}
for(int i=0; i<30; i+=6) {
tft.drawLine(x0+3.33*i,y0+i, x0+180+3.33*i,y0-30+i, 0x0);
delay(100);
}
for(int r=0; r<5; r++) {
for(int i=r*6; i<6*(r+1); i+=1) {
for(int j=0; r%2==0 && j<10; j+=2) {
tft.drawLine(x0+(j*18)+3.33*i,y0-(j*3)+i, x0+((j+1)*18)+3.33*i,y0-((j+1)*3)+i, 0x001f);
delay(20);
}
for(int j=1; r%2!=0 && j<=10; j+=2) {
tft.drawLine(x0+(j*18)+3.33*i,y0-(j*3)+i, x0+((j+1)*18)+3.33*i,y0-((j+1)*3)+i, 0x001f);
delay(20);
}
}
}
for(int i=1; i<6; i+=2) {
for(int j=0; j<5; j+=2) {
tft.drawLine(x0+j*20,y0+j*6+i, x0+(j+1)*20,y0+(j+1)*6+i, 0x001f);
}
for(int j=0; j<10; j+=2) {
tft.drawLine(x0+100+j*18,y0+30-j*3+i, x0+100+(j+1)*18,y0+30-(j+1)*3+i, 0x001f);
}
}
}
void setup() {
tft.begin();
tft.setRotation(3);
tft.fillScreen(0xffff);
}
void loop() {
draw3D(20,100);
while(1);
}