代码中用到了鼠标操控和相对坐标,有不懂得可以参考:Python编程xy坐标之什么是相对坐标 和 Python-pyautogui如何控制鼠标键盘
代码演示
别看下面整个一大串十分复杂,仔细一看只用到了以下几条代码和一些简单的坐标计算,控制鼠标不停地循环绘制横竖线条
按下鼠标按键:mouseDown()释放鼠标按键:mouseUp()相对坐标移动鼠标:moveRel()获取鼠标当前坐标:position()
import pyautogui
class Drawing():
def run(self):
minnum = 0 # 最小值
maxnum = 100 # 最大值
spacing = 10 # 每个方块间隔距离
duration = 0.2 # 每段线条的绘制消耗时间
# 绘制多个方块
pyautogui.moveTo(400, 521, 0.2)
while minnum <= maxnum:
minnum += spacing # 计算绘制当前图形的半径
pyautogui.moveRel(-spacing, -spacing, duration)
pyautogui.mouseDown() # 按键左键
pyautogui.moveRel(minnum*2, 0, duration) # 从左往右绘制:横
pyautogui.moveRel(0, minnum*2, duration) # 从上往下绘制:竖
pyautogui.moveRel(-minnum*2, 0, duration) # 从右往左绘制:横
pyautogui.moveRel(0, -minnum*2, duration) # 从下往上绘制:竖
pyautogui.mouseUp() # 释放左键
# 用来给鼠标指针定位
maxnum += spacing # 计算整个图形的半径
x, y = pyautogui.position() # 获取指针当前坐标
# 绘制 十 字
pyautogui.mouseDown(x, y+maxnum,)
pyautogui.moveRel(maxnum*2, 0, duration)
pyautogui.mouseUp()
pyautogui.mouseDown(x+maxnum, y)
pyautogui.moveRel(0, maxnum*2, duration)
pyautogui.mouseUp()
# 绘制 X
pyautogui.mouseDown(x, y)
pyautogui.moveRel(maxnum*2, maxnum*2, duration)
pyautogui.mouseUp()
pyautogui.mouseDown(x+maxnum*2, y)
pyautogui.moveRel(-maxnum*2, maxnum*2, duration)
pyautogui.mouseUp()
dra= Drawing() # 实例化类
dra.run() # 调用方法执行代码
执行结果:
有些人可能会疑惑,为什么不直接用:dragRel() ,拖动鼠标来绘制,这样还省去了:mouseDown() 、mouseUp() 和 position(),这个试过了绘制速度太慢,太快的话会导致 线条之间不连贯图一:每段线条
图一:绘制耗时0.2秒,图二:每段线条绘制耗时3秒,也许是我代码问题,有兴趣的可以试试(如果有成功的,可以在评论里贴下代码)下面我就不贴代码了,免的水字数太多[得意]
视频演示
我写代码太慢,为了不耽误大家时间,直接写好代码在录制的
视频加载中…
原创文章,作者:XNXIPY,如若转载,请注明出处:https://www.beidanyezhu.com/a/32040.html