Example #1
0
def Main():
    Read_Data()
    translatePoints()
    setPrincipalSign()
    DecideConvexConcavePoints()
    DecidePrincipalsPoints()
    PrintConvexesConcaves()
    PrintPrincipalsNotPrincipals()

    # A ramas partea grafica
    map_points()
    drawing = Drawing(drawing_points)
    drawing.draw()
Example #2
0
class PAINT3R:
    def __init__(self, drawing_size=(300, 300), window_size=(800, 600)):
        self.drawing_size = drawing_size
        self.window_size = window_size

        self.window = pygame.display.set_mode(window_size)
        pygame.display.set_caption('GNU PAINT3R')
        self.drawing = Drawing(window=self.window,
                               rect=(0, 0),
                               size=self.drawing_size,
                               zoom_factor=2)
        self.clock = pygame.time.Clock()

        self.running = False

        self.MODE_BUTTONS = [
            TextButton(self.window, (self.window_size[0] - 50, 75), (75, 75),
                       'Draw'),
            TextButton(self.window, (self.window_size[0] - 50, 150), (75, 75),
                       'Erase'),
            TextButton(self.window, (self.window_size[0] - 50, 225), (75, 75),
                       'Fill'),
            TextButton(self.window, (self.window_size[0] - 50, 300), (75, 75),
                       'Replace'),
            TextButton(self.window, (self.window_size[0] - 50, 375), (75, 75),
                       'Clear')
        ]
        self.MODE_BUTTONS[0].selected = True
        self.mode = 'd'
        self.modes = ['d', 'e', 'f', 'r', 'c']

        self.BRUSHSIZE_BUTTONS = [
            TextButton(self.window, (self.window_size[0] - 50, 425), (25, 25),
                       '1'),
            TextButton(self.window, (self.window_size[0] - 50, 450), (25, 25),
                       '2'),
            TextButton(self.window, (self.window_size[0] - 50, 475), (25, 25),
                       '3'),
            TextButton(self.window, (self.window_size[0] - 50, 500), (25, 25),
                       '4'),
            TextButton(self.window, (self.window_size[0] - 50, 525), (25, 25),
                       '5')
        ]
        self.BRUSHSIZE_BUTTONS[0].selected = True
        self.brushsize = 1

        self.colors = ((255, 0, 0), (0, 255, 0), (0, 0, 255), (255, 255, 0),
                       (255, 255, 255), (0, 0, 0))

        self.COLOR_BUTTONS = [
            ColorButton(window=self.window,
                        center=(self.window_size[0] - 170, 75),
                        size=(50, 50),
                        base_color=(225, 0, 0),
                        light_color=(255, 0, 0)),
            ColorButton(window=self.window,
                        center=(self.window_size[0] - 120, 75),
                        size=(50, 50),
                        base_color=(0, 225, 0),
                        light_color=(0, 255, 0)),
            ColorButton(window=self.window,
                        center=(self.window_size[0] - 120, 125),
                        size=(50, 50),
                        base_color=(0, 0, 225),
                        light_color=(0, 0, 255)),
            ColorButton(window=self.window,
                        center=(self.window_size[0] - 170, 125),
                        size=(50, 50),
                        base_color=(225, 225, 0),
                        light_color=(255, 255, 0)),
            ColorButton(window=self.window,
                        center=(self.window_size[0] - 120, 175),
                        size=(50, 50),
                        base_color=(225, 225, 225),
                        light_color=(255, 255, 255)),
            ColorButton(window=self.window,
                        center=(self.window_size[0] - 170, 175),
                        size=(50, 50),
                        base_color=(10, 10, 10),
                        light_color=(20, 20, 20)),
        ]
        self.COLOR_BUTTONS[0].selected = True
        self.color = self.colors[0]

    def draw(self, mouse_pos, mouse_click):
        self.window.fill((0, 0, 0))

        for button in self.MODE_BUTTONS:
            button.draw(mouse_pos)

        for button in self.MODE_BUTTONS:
            if button.selected:
                button.draw(mouse_pos)

        for button in self.COLOR_BUTTONS:
            button.draw(mouse_pos)

        for button in self.COLOR_BUTTONS:
            if button.selected:
                button.draw(mouse_pos)

        for button in self.BRUSHSIZE_BUTTONS:
            button.draw(mouse_pos)

        for button in self.BRUSHSIZE_BUTTONS:
            if button.selected:
                button.draw(mouse_pos)

        self.drawing.draw(mouse_pos)

        pygame.display.update()

    @staticmethod
    def get_events():
        return pygame.event.get(), pygame.mouse.get_pos(
        ), pygame.mouse.get_pressed()

    def handle_events(self, events, mouse_pos, mouse_click):
        for event in events:
            if event.type == pygame.QUIT:
                self.running = False

        if self.drawing.handle_events(events, mouse_pos, mouse_click,
                                      self.mode, self.color, self.brushsize):
            mode_ds = False
            for idx in range(len(self.MODE_BUTTONS)):
                self.MODE_BUTTONS[idx].handle_events(events, mouse_pos,
                                                     mouse_click)
                if self.MODE_BUTTONS[idx].directly_selected:
                    mode_ds = True
                    self.mode = self.modes[idx]
                else:
                    mode_ds = False

            for idx in range(len(self.MODE_BUTTONS)):
                if self.modes[idx] != self.mode:
                    self.MODE_BUTTONS[idx].selected = False
            if not mode_ds:
                color_ds = False
                for idx in range(len(self.COLOR_BUTTONS)):
                    self.COLOR_BUTTONS[idx].handle_events(
                        events, mouse_pos, mouse_click)
                    if self.COLOR_BUTTONS[idx].directly_selected:
                        self.color = self.colors[idx]
                        color_ds = True

                for idx in range(len(self.COLOR_BUTTONS)):
                    if self.colors[idx] != self.color:
                        self.COLOR_BUTTONS[idx].selected = False

                if not color_ds:
                    for idx in range(len(self.BRUSHSIZE_BUTTONS)):
                        self.BRUSHSIZE_BUTTONS[idx].handle_events(
                            events, mouse_pos, mouse_click)
                        if self.BRUSHSIZE_BUTTONS[idx].directly_selected:
                            self.brushsize = idx + 1

                    for idx in range(len(self.BRUSHSIZE_BUTTONS)):
                        if idx + 1 != self.brushsize:
                            self.BRUSHSIZE_BUTTONS[idx].selected = False

    def main_loop(self):
        self.running = True
        while self.running:
            # Sense everything
            events, mouse_pos, mouse_click = self.get_events()

            # Handle them
            self.handle_events(events, mouse_pos, mouse_click)

            # And now draw it
            self.draw(mouse_pos, mouse_click)

            #self.clock.tick(10)

        pygame.quit()