Exemple #1
0
    def __init__(self):
        app.Canvas.__init__(self,
                            title='Arrows example',
                            keys='interactive',
                            size=(1050, 650))

        line1 = curves.curve4_bezier((10.0, 0.0), (50, -190), (350, 190),
                                     (390, 0.0))
        arrows1 = np.array([line1[-2], line1[-1]]).reshape((1, 4))

        line2 = curves.curve4_bezier((10.0, 0.0), (190, -190), (210, 190),
                                     (390, 0.0))
        arrows2 = np.array([line2[1], line2[0], line2[-2], line2[-1]]).reshape(
            (2, 4))

        line3 = curves.curve3_bezier((10.0, 0.0), (50, 190), (390, 0.0))

        arrows3 = np.array([line3[-2], line3[-1]]).reshape((1, 4))

        arrow_types = ["curved", "stealth", "inhibitor_round", "angle_60"]
        self.lines = []

        for i, arrow_type in enumerate(arrow_types):
            arrows = [
                visuals.ArrowVisual(line1,
                                    color='w',
                                    width=6,
                                    method='agg',
                                    arrows=arrows1,
                                    arrow_type=arrow_type,
                                    arrow_size=30.0),
                visuals.ArrowVisual(line2,
                                    color='w',
                                    width=2,
                                    method='agg',
                                    arrows=arrows2,
                                    arrow_type=arrow_type,
                                    arrow_size=5.0),
                visuals.ArrowVisual(line3,
                                    color='w',
                                    width=4,
                                    method='agg',
                                    arrows=arrows3,
                                    arrow_type=arrow_type,
                                    arrow_size=10.0)
            ]

            # Translate each line visual downwards
            for j, visual in enumerate(arrows):
                x = 50 + (i * 250)
                y = 100 + (200 * j)

                visual.transform = STTransform(translate=[x, y],
                                               scale=(0.5, 1.0))
                visual.events.update.connect(lambda event: self.update())

            self.lines.extend(arrows)

        self.show()
Exemple #2
0
    def __init__(self):
        app.Canvas.__init__(self,
                            title="Quiver plot",
                            keys="interactive",
                            size=(830, 430))

        self.arrow_length = 20

        self.grid_coords = None
        self.line_vertices = None
        self.last_mouse = (0, 0)

        self.generate_grid()

        self.visual = visuals.ArrowVisual(color='white',
                                          connect='segments',
                                          arrow_size=8)

        self.visual.events.update.connect(lambda evt: self.update())
        self.visual.transform = NullTransform()

        self.show()