def _draw_pulse(cls, canvas: tk.Canvas, tower_: SimpleTower): """Draws a pulse tower""" x, y = tower_.position x_diameter, y_diameter = tower_.grid_size top_left, bottom_right = tower_.get_bounding_box() cell_size = tower_.cell_size colour = tower_.colour body = canvas.create_oval(top_left, bottom_right, tag='tower', fill=colour) tags = [body] angle_step = math.pi / 2 for i in range(4): angle = i * angle_step dx = (x_diameter / 2) * cell_size * math.cos(angle) dy = (y_diameter / 2) * cell_size * math.sin(angle) tag = canvas.create_line(x + dx / 2, y + dy / 2, x + dx, y + dy, tag='tower') tags.append(tag) return tags
def _draw_simple(cls, canvas: tk.Canvas, tower_: SimpleTower): """Draws a simple tower""" x, y = tower_.position angle = tower_.rotation x_diameter, y_diameter = tower_.grid_size top_left, bottom_right = tower_.get_bounding_box() cell_size = tower_.cell_size colour = tower_.colour return [ canvas.create_oval(top_left, bottom_right, tag='tower', fill=colour), canvas.create_line( x, y, x + (x_diameter / 2) * cell_size * math.cos(angle), y + (y_diameter / 2) * cell_size * math.sin(angle), tag='tower') ]