地月模型

#include #include #include #define OLED_RESET 4 Adafruit_SSD1306 oled(OLED_R

#include
#include
#include

#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();
}

转载于:https://my.oschina.net/u/4170695/blog/3082352