Treść książki

Przejdź do opcji czytnikaPrzejdź do nawigacjiPrzejdź do informacjiPrzejdź do stopki
ROZDZIAŁ2.CZYTANIENIEZNANEGOJĘZYKA
Ćwiczenia
[UNK:analyze]
Wsposóbanalogicznydoopisanegowtymrozdzialeprzeanalizujponiższykod:
classVecFont():
def--init--(self):
self.--gfx-engine=None
self.--font=None
defset-gfx-engine(self,gfx):
self.--gfx-engine=gfx
defload-font-from-string(self,font-string):
#Note:ThefontstringisaDEFLATEdserializedarrayofglyphs.Each
#glyphisanarrayofpaths.Eachpathisanarrayofcoordinates.
#ThismustbedeserializedintoPythonarrays.
font-string=font-string.decode("zlib")
data=iter(font-string)
#Readallletters.
self.--font=[]
whileTrue:
number-of-paths=self.--read-uint8(data)
ifnumber-of-paths==0:
break
paths=[]
for-inxrange(number-of-paths):
number-of-coords=self.--read-uint8(data)
coords=[]
for-inxrange(number-of-coords):
coords.append((
self.--read-float(data),
#X
self.--read-float(data)))
#Y
paths.append(coords)
self.--font.append(paths)
defrender-string(self,text,sx,sy,font-size):
character-x=sx
character-y=sy
forcharacterintext:
54