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

39 wiersze
1.1 KiB
Python
Czysty Zwykły widok Historia

2019-06-08 02:54:29 +00:00
class Glyph:
w = 5 # width
2019-06-09 02:07:59 +00:00
m = 16 # module
2019-06-08 03:24:41 +00:00
sw = 8 # stroke weight
f = None # fill
2019-06-08 02:54:29 +00:00
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(
2019-06-08 03:06:02 +00:00
self.id, self.points, repr(self.paths))
2019-06-08 02:54:29 +00:00
def plot(self):
2019-06-08 03:24:41 +00:00
strokeWeight(self.sw)
if self.f == None:
noFill()
else:
fill(self.f)
2019-06-08 02:54:29 +00:00
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)