def create_layer(self): # compute tilesize and border coordinates w, h = _scene.getWidth(), _scene.getHeight() tsx = w / (self.num_cols + 2) tsy = h / (self.num_rows + 2) self.ts = min(tsx, tsy) self.left = 2 * self.ts self.right = self.left + 2 * self.ts * self.av self.bottom = h - 2 * self.ts self.top = self.bottom - 2 * self.ts * self.st self.layer = _g.Layer() # Create avenues for av in range(self.av): x = self.left + self.ts * (2 * av + 1) l = _g.Path([_g.Point(x, self.top), _g.Point(x, self.bottom)]) l.setBorderColor("light gray") self.layer.add(l) self.layer.add( _g.Text("%d" % (av + 1), 10, _g.Point(x, self.bottom + self.ts))) # Create streets for st in range(self.st): y = self.bottom - self.ts * (2 * st + 1) l = _g.Path([_g.Point(self.left, y), _g.Point(self.right, y)]) l.setBorderColor("light gray") self.layer.add(l) self.layer.add( _g.Text("%d" % (st + 1), 10, _g.Point(self.left - self.ts, y))) # Create border border = _g.Polygon(_g.Point(self.left, self.bottom), _g.Point(self.right, self.bottom), _g.Point(self.right, self.top), _g.Point(self.left, self.top)) border.setBorderWidth(5) border.setBorderColor("dark red") border.setDepth(10) self.layer.add(border) # Create walls for (col, row) in self.walls: if col % 2 == 0: # vertical wall x1, y1 = self.cr2xy(col, row - 1) x2, y2 = self.cr2xy(col, row + 1) else: # horizontal wall x1, y1 = self.cr2xy(col - 1, row) x2, y2 = self.cr2xy(col + 1, row) w = _g.Path([_g.Point(x1, y1), _g.Point(x2, y2)]) w.setBorderWidth(5) w.setBorderColor("dark red") w.setDepth(10) self.layer.add(w) # Create beepers for (av, st) in self.beepers: self._create_beeper(av, st) # Layer finished _scene.add(self.layer)
def __init__(self, radius, av, st, num=1): self.av = av self.st = st self.num = num self.layer = _g.Layer() self.circle = _g.Circle(radius=radius) self.text = _g.Text("%d" % num, 11, _g.Point(0, 0)) self.layer.add(self.circle) self.layer.add(self.text) self.circle.setFillColor("yellow") self.circle.setBorderColor("orange") self.circle.setDepth(10) self.text.setDepth(5) self.layer.setDepth(5)
import cs1graphics as cg paper = cg.Canvas() melon = cg.Circle() def make_paper(): paper.setWidth(100) paper.setHeight(100) paper.setBackgroundColor("white") paper.setTitle("Ube") def make_melon(): melon.setRadius(25) melon.setFillColor("darkGreen") melon.moveTo(50, 50) paper.add(melon) msg = cg.Text("Ubermelon", 10) msg.moveTo(50, 80) paper.add(msg) make_paper() make_melon()