示例#1
0
    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))
示例#2
0
    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))
示例#3
0
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
示例#4
0
    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()
示例#5
0
    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()