我试图在单击鼠标右键的同时跟踪鼠标在屏幕上的运动,并将该运动保存为2D形状(.dwg或其他形状)到新文件中。解决此问题的最佳方法是什么?
到目前为止,我已经研究了PyMouse,并简要地研究了PyGame。但是,由于我对编码的了解仍然有限,所以我不了解如何实际使用它们并创建正在运行的应用程序。
我已经尝试了这些简单的示例来实现PyMouse(https://github.com/pepijndevos/PyMouse/wiki/Documentation)的基本功能,但是不知道如何从这里开始跟踪用户的鼠标移动。
对此我将不胜感激!
答案 0 :(得分:1)
对于鼠标跟踪事件,可以使用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
注释之后添加保存文件过程即可。
我将处理保存文件部分,但这是我目前所能获得的最好的结果。