Ejemplo n.º 1
0
    def __init__(self, anchor, size, text):

        super().__init__(anchor)

        self.text = text
        self.size = size
        self.label = Shapes.make_label(self.text, self.anchor, self.size, anchor_x='left', anchor_y='top')
Ejemplo n.º 2
0
    def draw_force_lines(self):
        """ Draws the a line between particles, thickness depending on the magnitude of the force """

        labels = pyglet.graphics.Batch()
        for fl in self.force_lines:
            f = fl[1]
            e = fl[0]
            if f[0] == 0 and f[1] == 0:
                return  # If the force is 0, don't draw a line

            t_mod = 7500
            F = math.sqrt((f[0] * f[0]) + (f[1] * f[1]))
            line = Shapes.make_line(self.pos, e.pos, thickness=F * t_mod)
            line.draw(pyglet.gl.GL_LINES)

            # Put label in batch
            x = (max(e.pos[0], self.pos[0]) + min(e.pos[0], self.pos[0])) / 2.0
            y = (max(e.pos[1], self.pos[1]) + min(e.pos[1], self.pos[1])) / 2.0
            label_pos = (x, y)
            force_text = str(f[0]) + " / " + str(f[1])
            label = Shapes.make_label(force_text,
                                      label_pos,
                                      size=10,
                                      batch=labels)

        # Draw batch of labels
        labels.draw()
Ejemplo n.º 3
0
    def draw_debug_view(self):
        # Draw circle indicating range
        indices, verts, colors = Shapes.make_circle(center=self.pos,
                                                    radius=self.radius / 2.0)
        # Overwrite degenerate first point
        verts[1][0:1] = verts[1][-2:-1]
        n_points = len(verts[1]) // 2
        pyglet.gl.glLineWidth(1)
        pyglet.graphics.draw(n_points, pyglet.gl.GL_LINE_LOOP, verts, colors)

        # Draw label showing # neighbours
        label_pos = (self.pos[0], self.pos[1] + 3 * self.size + 0.015)
        n_label = Shapes.make_label(str(self._neighbourhood_size),
                                    label_pos,
                                    size=14)
        n_label.draw()