def init_vertexes(self): """Setup the hex vertexes. Each vertex is the midpoint between the vertexes of the two bordering hexes. """ self.vertexes = [] for unused in range(6): self.vertexes.append(None) cx = self.cx cy = self.cy scale = self.guimap.scale if self.battlehex.entrance: self.vertexes[0] = rp((cx + 1.5 * scale, cy - 3 * scale)) self.vertexes[1] = rp((cx + 3 * scale, cy - 3 * scale)) self.vertexes[2] = rp((cx + 3 * scale, cy + 3 * scale)) self.vertexes[3] = rp((cx + 3 * scale, cy + 9 * scale)) self.vertexes[4] = rp((cx + 1.5 * scale, cy + 9 * scale)) self.vertexes[5] = rp((cx + 1.5 * scale, cy + 3 * scale)) else: self.vertexes[0] = rp((cx + scale, cy)) self.vertexes[1] = rp((cx + 3 * scale, cy)) self.vertexes[2] = rp((cx + 4 * scale, cy + SQRT3 * scale)) self.vertexes[3] = rp((cx + 3 * scale, cy + 2 * SQRT3 * scale)) self.vertexes[4] = rp((cx + scale, cy + 2 * SQRT3 * scale)) self.vertexes[5] = rp((cx, cy + SQRT3 * scale)) self.points = [] iv = guiutils.scale_polygon(self.vertexes, 0.9) for point in iv: self.points.append(rp(point))
def init_vertexes(self): """Setup the hex vertexes. Each vertex is the midpoint between the vertexes of the two bordering hexes. """ self.vertexes = [] for unused in xrange(6): self.vertexes.append(None) cx = self.cx cy = self.cy scale = self.guimap.scale if self.battlehex.entrance: self.vertexes[0] = rp((cx + 1.5 * scale, cy - 3 * scale)) self.vertexes[1] = rp((cx + 3 * scale, cy - 3 * scale)) self.vertexes[2] = rp((cx + 3 * scale, cy + 3 * scale)) self.vertexes[3] = rp((cx + 3 * scale, cy + 9 * scale)) self.vertexes[4] = rp((cx + 1.5 * scale, cy + 9 * scale)) self.vertexes[5] = rp((cx + 1.5 * scale, cy + 3 * scale)) else: self.vertexes[0] = rp((cx + scale, cy)) self.vertexes[1] = rp((cx + 3 * scale, cy)) self.vertexes[2] = rp((cx + 4 * scale, cy + SQRT3 * scale)) self.vertexes[3] = rp((cx + 3 * scale, cy + 2 * SQRT3 * scale)) self.vertexes[4] = rp((cx + scale, cy + 2 * SQRT3 * scale)) self.vertexes[5] = rp((cx, cy + SQRT3 * scale)) self.points = [] iv = guiutils.scale_polygon(self.vertexes, 0.9) for point in iv: self.points.append(rp(point))
def test_scale_polygon(): vertexes = [(100, 0), (200, 100), (100, 200), (0, 100)] nv = guiutils.scale_polygon(vertexes, 0.5) assert int(round(nv[0][0])) == 100 assert int(round(nv[0][1])) == 50 assert int(round(nv[1][0])) == 150 assert int(round(nv[1][1])) == 100 assert int(round(nv[2][0])) == 100 assert int(round(nv[2][1])) == 150 assert int(round(nv[3][0])) == 50 assert int(round(nv[3][1])) == 100
def __init__(self, masterhex, guiboard): self.masterhex = masterhex self.guiboard = guiboard scale = self.guiboard.scale self.cx = masterhex.x * 4 * scale self.cy = masterhex.y * 4 * SQRT3 * scale if not masterhex.inverted: self.cy += SQRT3 * scale self.fillcolor = guiutils.rgb_to_float( colors.rgb_colors[colors.terrain_colors[self.masterhex.terrain]]) self.center = (self.cx + 3 * scale, self.cy + 1.5 * SQRT3 * scale) self.selected = False self.init_vertexes() self.init_gates() iv = guiutils.scale_polygon(self.vertexes, 0.7) self.inner_vertexes = [] for point in iv: self.inner_vertexes.append(rp(point)) self.init_overlay()