sketch-a-day/2019/sketch_190607a/silly.py

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)