地月模型

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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值