kopia lustrzana https://github.com/villares/sketch-a-day
39 wiersze
1.1 KiB
Python
39 wiersze
1.1 KiB
Python
class Glyph:
|
|
w = 5 # width
|
|
m = 16 # module
|
|
sw = 8 # stroke weight
|
|
f = None # fill
|
|
|
|
def __init__(self, id, points=None, paths=None):
|
|
self.id = id # unicode char
|
|
self.points = points if points else []
|
|
self.paths = paths if paths else []
|
|
|
|
def __repr__(self):
|
|
return 'Glyph("{}", {}, {})'.format(
|
|
self.id, self.points, repr(self.paths))
|
|
|
|
def plot(self):
|
|
strokeWeight(self.sw)
|
|
if self.f == None:
|
|
noFill()
|
|
else:
|
|
fill(self.f)
|
|
|
|
for ps in self.paths:
|
|
for p in ps:
|
|
if p == ".":
|
|
beginShape()
|
|
if p == "-":
|
|
beginContour()
|
|
if p == "=":
|
|
endContour()
|
|
if p == ":":
|
|
endShape()
|
|
if p == ";":
|
|
endShape(CLOSE)
|
|
if p in "012345679ABCDEF":
|
|
pt = self.points[unhex(p)]
|
|
if pt[2]:
|
|
vertex(pt[0] * self.m, pt[1] * -self.m)
|