//Analog Clock Sketch created by Embedded Downloads LTD //To view the full tutorial go to www.embeddeddownloads.com #include // Core graphics library #include // Hardware-specific library #include // The control pins for the LCD can be assigned to any digital or // analog pins...but we'll use the analog pins as this allows us to // double up the pins with the touch screen (see the tft paint example). #define LCD_CS A3 // Chip Select goes to Analog 3 #define LCD_CD A2 // Command/Data goes to Analog 2 #define LCD_WR A1 // LCD Write goes to Analog 1 #define LCD_RD A0 // LCD Read goes to Analog 0 #define LCD_RESET A4 // Can alternately just connect to Arduino's reset pin // When using the BREAKOUT BOARD only, use these 8 data lines to the LCD: // For the Arduino Uno, Duemilanove, Diecimila, etc.: // D0 connects to digital pin 8 (Notice these are // D1 connects to digital pin 9 NOT in order!) // D2 connects to digital pin 2 // D3 connects to digital pin 3 // D4 connects to digital pin 4 // D5 connects to digital pin 5 // D6 connects to digital pin 6 // D7 connects to digital pin 7 // For the Arduino Mega, use digital pins 22 through 29 // (on the 2-row header at the end of the board). // These are the pins for the shield! #define YP A1 // must be an analog pin, use "An" notation! #define XM A2 // must be an analog pin, use "An" notation! #define YM 7 // can be a digital pin #define XP 6 // can be a digital pin #define MINPRESSURE 10 #define MAXPRESSURE 1000 // For better pressure precision, we need to know the resistance // between X+ and X- Use any multimeter to read it // For the one we're using, its 300 ohms across the X plate TouchScreen ts = TouchScreen(XP, YP, XM, YM, 300); // Assign human-readable names to some common 16-bit color values: #define BLACK 0x0000 #define BLUE 0x001F #define RED 0xF800 #define GREEN 0x07E0 #define CYAN 0x07FF #define MAGENTA 0xF81F #define YELLOW 0xFFE0 #define WHITE 0xFFFF Adafruit_ILI9341_8bit_AS tft(LCD_CS, LCD_CD, LCD_WR, LCD_RD, LCD_RESET); void setup() { Serial.begin(9600); tft.reset(); delay(10); tft.begin(0x9341); uint16_t identifier = tft.readID(); Serial.println(identifier, HEX); tft.fillScreen(BLACK); Serial.println("tft LCD test"); Serial.print("tft size is "); Serial.print(tft.width()); Serial.print("x"); Serial.println(tft.height()); } typedef struct { int x,y; } point; int key; float a=0.0,b=0.0; //float ax,ay,az; short lx[8]={1,1,1,1,-1,-1,-1,-1}; short ly[8]={1,1,-1,-1,1,1,-1,-1}; short lz[8]={1,-1,1,-1,1,-1,1,-1}; float lxn[8],lyn[8],lzn[8]; float xd[8],yd[8]; float c=2.0; int ti=1; float xt,yt,zt; float mr[3][3]; float znm; int face[6][4]={{4,0,1,5},{1,0,2,3},{5,1,3,7},{4,5,7,6},{0,4,6,2},{3,2,6,7}}; int facec[6]={10,20,30,20,30,10}; point points[10]; // Quick sort int tri[12]; int zface[12]; void QuickSort(int deb, int fin) { int i=deb; int j=fin; double milieu=256*zface[tri[(deb+fin)/2]]; int temp; while(i<=j) { while(256*zface[tri[i]]> milieu) i++; while(256*zface[tri[j]]< milieu) j--; if(i<=j) { temp=tri[i]; tri[i]=tri[j]; tri[j]=temp; i++; j--; } } if(i0) { zface[m]=lzn[face[m][0]]+lzn[face[m][1]]+lzn[face[m][2]]+lzn[face[m][3]]+lzn[face[m][4]]; tri[facev]=m; facev++; } } QuickSort(0,facev-1); tft.fillScreen(BLACK); //for(int mb=0;mb<6;mb++) { for(int mb=0;mb