Отслеживание движения мыши (фигуры) на экране - Python - PullRequest
1 голос
/ 16 июня 2019

Я пытаюсь отследить движение мыши на экране, нажимая правую кнопку мыши и сохраняя движение в 2D-фигуру (или .dwg или другое) в новый файл. Как лучше всего подойти к этому?

Я заглянул в PyMouse и кратко в PyGame, но пока. Но, поскольку у меня все еще ограниченное понимание кодирования, я не понимаю, как на самом деле использовать их и создавать работающее приложение.

Я пробовал эти простые примеры для базовой функции PyMouse (https://github.com/pepijndevos/PyMouse/wiki/Documentation), но не знаю, как отсюда проследить за движением мыши пользователя.

Буду признателен за любые советы по этому поводу!

1 Ответ

1 голос
/ 16 июня 2019

Для события отслеживания мыши вы можете использовать оператор if event.type == pygame.MOUSEBUTTONDOWN:.

Полный код ниже:

import pygame,sys,numpy
pygame.init()
display = (1500, 900)
screen = pygame.display.set_mode(display)
pygame.display.set_caption("Shape")

draw = False
size = (15,15)
run = True
shape = []

while run:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            run = False
        if event.type == pygame.KEYDOWN:
            if event.key == pygame.K_ESCAPE:
                run = False
        if event.type == pygame.MOUSEBUTTONDOWN and event.button == 3: #Detect right-click; left-click is 1
            draw = True
        if event.type == pygame.MOUSEBUTTONUP and event.button == 3: #Detect release right-click
            draw = False
            #Here to save the file of 2d shape
            shape = []



    screen.fill((0,0,0))
    #Draw the shape
    if draw == True:
        shape.append(pygame.mouse.get_pos())
        for i in shape:
            screen.fill((255,255,255), (i, size))

    pygame.display.flip()

pygame.quit()
sys.exit()

Я думаю, что есть способ сохранить список как 2dфайл.Проверьте https://gis.stackexchange.com/questions/52705/how-to-write-shapely-geometries-to-shapefiles, и это может помочь вам.Просто добавьте процесс сохранения файла после комментария #Here to save the file of 2d shape.

Я буду работать над частью файла сохранения, но это лучшее, что я могу получить на данный момент.

...