数码之家

 找回密码
 立即注册
搜索
查看: 2599|回复: 0

[Arduino] [esp8266_micropython] ssd1306绘制直线

[复制链接]
发表于 2020-12-20 21:22:00 | 显示全部楼层 |阅读模式

爱科技、爱创意、爱折腾、爱极致,我们都是技术控

您需要 登录 才可以下载或查看,没有账号?立即注册

x
前置贴

[esp8266_micropython]oled ssd1306的使用 https://www.mydigit.cn/forum.php?mod=viewthread&tid=178269

代码
main.py
  1. from machine import Pin, I2C
  2. from ssd1306 import SSD1306_I2C

  3. def light_dot(x,y):
  4.   oled.pixel(x,y,1)

  5. def draw_line(x1,y1,x2,y2):
  6.   if ( x1 == x2 ):
  7.     step = 1
  8.     if ( y1 > y2 ) :
  9.       step *= -1
  10.     while ( y1 != y2 ):
  11.       light_dot(x1, y1)
  12.       y1 = y1+step
  13.     light_dot(x2,y2)
  14.     oled.show()
  15.   else :
  16.     # y = kx+a
  17.     k = (y2-y1)/(x2-x1)
  18.     a = y1-(k*x1)
  19.     step = 1
  20.     if ( x1 > x2 ) :
  21.       step *= -1
  22.     while ( x1 != x2 ):
  23.       light_dot(x1, round(k*x1+a))
  24.       x1 += step
  25.     light_dot(x2,y2)
  26.     oled.show()
  27.       
  28.   
  29. if __name__ == '__main__':
  30.    
  31.   i2c = I2C(scl=Pin(5), sda=Pin(4))
  32.   oled = SSD1306_I2C(128, 64, i2c)  
  33.   oled.fill(0)
  34.   oled.show()

  35.   draw_line(0,0, 127,63)
  36.   draw_line(0,63, 127,0)
  37.   draw_line(0,0, 127,0)
  38.   draw_line(0,0, 0,63)
  39.   draw_line(127,0, 127,63)
  40.   draw_line(0,63, 127,63)
复制代码



效果

draw_line

draw_line



打赏

参与人数 1家元 +20 收起 理由
家睦 + 20

查看全部打赏

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

APP|手机版|小黑屋|关于我们|联系我们|法律条款|技术知识分享平台

闽公网安备35020502000485号

闽ICP备2021002735号-2

GMT+8, 2024-5-7 00:40 , Processed in 0.171601 second(s), 14 queries , Redis On.

Powered by Discuz!

© 2006-2023 smzj.net

快速回复 返回顶部 返回列表