#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#define OLED_RESET 4
Adafruit_SSD1306 oled(OLED_RESET);
//resolution 128 * 64
float x0 = 64;
float y0 = 32;//圆心--sun位置
float r1 = 24;//sun-earth距离
float r2 = 6;//earth-moon距离
float deg1 = 0;//地球角度
float deg2 = 0;//月球角度
void setup() {
oled.begin(SSD1306_SWITCHCAPVCC, 0x3C);
oled.clearDisplay();
oled.display();
}
void loop() {
float earth_x = cos(deg1) * r1 + x0;
float earth_y = sin(deg1) * r1 + y0;
float moon_x = cos(deg2) * r2 + earth_x;
float moon_y = sin(deg2) * r2 + earth_y;
deg1 = deg1 + 0.01;
deg2 = deg2 + 0.12;
//draw
oled.clearDisplay();
oled.fillCircle(x0, y0, 6, WHITE);//sun
oled.fillCircle(earth_x, earth_y, 3, WHITE);//earth
oled.fillCircle(moon_x, moon_y, 1, WHITE);//moon
oled.display();
}