コード例 #1
0
ファイル: sierpinski_zoom.py プロジェクト: alexlib/enable
    def _comp_default(self):
        canvas = Canvas(draw_axes=True, bgcolor="gray")
        self.triangle = SierpinskiTriangle(
            position=[0.0, 0.0],
            bounds=[self.base_width, self.base_width * (SQRT3 / 2)],
            iterations=self.iterations,
            max_iters=self.max_iters,
            base_width=self.base_width,
            bgcolor="gray")
        canvas.add(self.triangle)

        self.viewport = Viewport(component=canvas,
                                 enable_zoom=True,
                                 stay_inside=True)
        self.viewport.zoom_tool.min_zoom = 1.0
        self.viewport.tools.append(
            ViewportPanTool(self.viewport, drag_button="right"))

        scrolled = Scrolled(
            canvas,
            inside_padding_width=0,
            mousewheel_scroll=False,
            viewport_component=self.viewport,
            always_show_sb=True,
            continuous_drag_update=True,
        )
        return scrolled
コード例 #2
0
 def create_component(self):
     canvas = Canvas(bgcolor="lightsteelblue", draw_axes=True)
     from basic_move import Box
     box = Box(color="red", bounds=[50, 50], resizable="")
     box.position = [75, 75]
     canvas.add(box)
     viewport = Viewport(component=canvas)
     viewport.view_position = [0, 0]
     viewport.tools.append(ViewportPanTool(viewport))
     return viewport
コード例 #3
0
    def _create_component(self):
        canvas = Canvas(bgcolor="lightsteelblue", draw_axes=True)

        boxgridsize = 8
        boxsize = 50

        spacing = boxsize * 2
        offset = spacing / 2

        origin_color = array([0.0, 0.0, 1.0])
        x_color = array([0.0, 1.0, 0.0])
        y_color = array([1.0, 0.0, 0.0])

        for i in range(boxgridsize):
            for j in range(boxgridsize):
                color = tuple(x_color / (boxgridsize - 1) * i + y_color /
                              (boxgridsize - 1) * j + origin_color) + (1.0, )
                box = Box(color=color, bounds=[boxsize, boxsize], resizable="")
                box.position = [
                    i * spacing + offset - boxsize / 2 + 0.5,
                    j * spacing + offset - boxsize / 2 + 0.5,
                ]
                canvas.add(box)

        viewport = Viewport(
            component=canvas,
            enable_zoom=True,
            vertical_anchor="center",
            horizontal_anchor="center",
        )
        # viewport.view_position = [0,0]
        viewport.tools.append(ViewportPanTool(viewport))

        # Uncomment the following to enforce limits on the zoom
        # viewport.min_zoom = 0.1
        # viewport.max_zoom = 3.0

        scrolled = Scrolled(
            canvas,
            fit_window=True,
            inside_padding_width=0,
            mousewheel_scroll=False,
            viewport_component=viewport,
            always_show_sb=True,
            continuous_drag_update=True,
        )

        return scrolled