import win32api
import pyautogui
import time
width, height = 2560, 1440
k1 = width/height
k2 = height/width
while True:
if win32api.GetKeyState(0x01) < 0:
x, y = pyautogui.position()
if y * k1 < x < (height - y) * k1:
print(2) # число - четверть согласно рисунку
if y * k1 > x > (height - y) * k1:
print(4)
if x * k2 < y < (width - x) * k2:
print(1)
if x * k2 > y > (width - x) * k2:
print(3)
time.sleep(0.1)
这是一个有趣的问题,所以我决定为您做一个小例子。
代码:
listen()- 设置一个钩子来获取(x,y)print_event(event)- 我们返回(x,y)的回调get_screen_resolution()- 让我们返回屏幕尺寸。get_triangles(screen_width, screen_height)- 我们得到所有4 个三角形的顶点。find_triangle(x, y)/is_in_triangle(x, y, v1, v2, v3)- 这里我们已经计算(x,y)是否落入三角形,如果是,则计算是哪一个。我还是不让你写评论,所以就写在这里吧。
1 我们建立直线方程。 2 我们首先检查给定点相对于一条直线,消除2个三角形。 3 检查相对于第二条直线
总的来说,我坐下来用方程式思考这个提案并编写了以下代码。
k1 和 k2 是系数,其中 x = y * k1 且 y = x * k2。 (对角函数)