Add function to convert font size to char width
This commit is contained in:
18
font.py
18
font.py
@@ -284,26 +284,26 @@ def character(lcd,asc,xt,yt,sz,r,g,b): # Single character sz is size: 1 or 2
|
|||||||
lcd.pixel(ii*sz+xt+2,yy*sz+yt+1,cc)
|
lcd.pixel(ii*sz+xt+2,yy*sz+yt+1,cc)
|
||||||
|
|
||||||
def prnt_st(lcd,asci,xx,yy,sz,r,g,b): # Text string
|
def prnt_st(lcd,asci,xx,yy,sz,r,g,b): # Text string
|
||||||
if sz == 1: move = 6
|
move = sz_to_w(sz)
|
||||||
if sz == 2: move = 11
|
|
||||||
if sz == 3: move = 17
|
|
||||||
for letter in(asci):
|
for letter in(asci):
|
||||||
asci = ord(letter)
|
asci = ord(letter)
|
||||||
character(lcd,asci,xx,yy,sz,r,g,b)
|
character(lcd,asci,xx,yy,sz,r,g,b)
|
||||||
xx = xx + move
|
xx = xx + move
|
||||||
|
|
||||||
def cntr_st(lcd,width,txt,y,size,r,g,b,o=0): # Centres text on line y, skipping first o pixels
|
def cntr_st(lcd,width,txt,y,size,r,g,b,o=0): # Centres text on line y, skipping first o pixels
|
||||||
if size == 1: w = 6
|
w = sz_to_w(size)
|
||||||
if size == 2: w = 11
|
|
||||||
if size == 3: w = 17
|
|
||||||
gap = (width - len(txt) * w)//2 + o
|
gap = (width - len(txt) * w)//2 + o
|
||||||
prnt_st(lcd,txt,gap,y,size,r,g,b)
|
prnt_st(lcd,txt,gap,y,size,r,g,b)
|
||||||
|
|
||||||
def rght_st(lcd,asci,xx,yy,sz,r,g,b):
|
def rght_st(lcd,asci,xx,yy,sz,r,g,b):
|
||||||
if sz == 1: w = 6
|
w = sz_to_w(sz)
|
||||||
if sz == 2: w = 11
|
|
||||||
if sz == 3: w = 17
|
|
||||||
xo = xx - len(asci) * w
|
xo = xx - len(asci) * w
|
||||||
prnt_st(lcd,asci,xo,yy,sz,r,g,b)
|
prnt_st(lcd,asci,xo,yy,sz,r,g,b)
|
||||||
|
|
||||||
# =========== End of font support routines ===========
|
# =========== End of font support routines ===========
|
||||||
|
|
||||||
|
def sz_to_w(sz: int) -> int:
|
||||||
|
if (sz == 1): return 6
|
||||||
|
if (sz == 2): return 11
|
||||||
|
if (sz == 3): return 17
|
||||||
|
return 6
|
||||||
Reference in New Issue
Block a user