i have adapted the code from "Adafruit-GFX-Library-master" for graphic lcd.
origin: https://github.com/adafruit/Adafruit-GFX-Library
Code: Select all
lcd = pyb.LCD('X') #128*32
lcd.light(1)
def drawFillRect(x,y,w,h,thelcd,fill):
xa=x
xe=x+w
ya=y
ye=y+h
if xa>xe:
t=xa
xa=xe
xe=t
if ya>ye:
t=ya
ya=ye
ye=t
for yy in range(ya, ye):
for xx in range(xa,xe):
thelcd.pixel(xx,yy,fill)
def drawLine(x0,y0,x1,y1,thelcd,fill):
steep= abs(y1 - y0) > abs(x1 - x0);
if steep:
x0, y0 = y0, x0
x1, y1 = y1, x1
if x0>x1:
x0, x1 = x1, x0
y0, y1 = y1, y0
dx=x1-x0
dy=abs(y1-y0)
err=dx/2
ystep=-1
if y0 < y1: ystep = 1
for xx in range(x0, x1):
if steep:
thelcd.pixel(y0,xx,fill)
else:
thelcd.pixel(xx,y0,fill)
err-=dy
if err<0:
y0+=ystep
err+=dx
def drawRect(x,y,w,h,thelcd,fill):
drawLine(x,y,x+w,y,thelcd,fill)
drawLine(x+w-1,y,x+w-1,y+h,thelcd,fill)
drawLine(x+w,y+h-1,x,y+h-1,thelcd,fill)
drawLine(x,y+h,x,y,thelcd,fill)
def drawCircle(x0,y0,r,thelcd,fill):
f=1-r
ddF_x = 1
ddF_y = -2 * r
x = 0
y = r
thelcd.pixel(x0 , y0+r,fill)
thelcd.pixel(x0 , y0-r,fill)
thelcd.pixel(x0+r, y0 ,fill)
thelcd.pixel(x0-r, y0 ,fill)
while x<y:
if f>=0:
y-=1
ddF_y+=2
f+=ddF_y
x+=1
ddF_x+=2
f+=ddF_x
thelcd.pixel(x0+x, y0+y, fill);
thelcd.pixel(x0-x, y0+y, fill);
thelcd.pixel(x0+x, y0-y, fill);
thelcd.pixel(x0-x, y0-y, fill);
thelcd.pixel(x0+y, y0+x, fill);
thelcd.pixel(x0-y, y0+x, fill);
thelcd.pixel(x0+y, y0-x, fill);
thelcd.pixel(x0-y, y0-x, fill);
def drawfillCircle(x0,y0,r,thelcd,fill):
drawLine(x0, y0-r, x0,y0-r+2*r+1,thelcd, fill)
f = 1 - r
ddF_x = 1
ddF_y = -2 * r
x = 0
y = r
while x<y:
if f>=0:
y-=1
ddF_y+=2
f+=ddF_y
x+=1
ddF_x+=2
f+=ddF_x
drawLine(x0+x, y0-y, x0+x, y0-y+2*y+1,thelcd, fill);
drawLine(x0+y, y0-x, x0+y, y0-x+2*x+1,thelcd, fill);
drawLine(x0-x, y0-y, x0-x, y0-y+2*y+1,thelcd, fill);
drawLine(x0-y, y0-x, x0-y, y0-x+2*x+1,thelcd, fill);
lcd.fill(0)
drawRect(0,0,10,16,lcd,1)
drawFillRect(15,0,10,16,lcd,1)
drawLine(0,31,30,16, lcd,1)
drawfillCircle(64,16,10,lcd,1)
drawCircle(128-6,32-6, 5,lcd,1)
lcd.show()