Files
ESP32-WijiBoard/scripts/test_angles.py
T
2026-07-08 20:35:59 +02:00

49 lines
1.1 KiB
Python

import math
d2 = 12.9
l1 = 85.0
l2 = 110.0
for t1 in range(360):
for t2 in range(360):
th1 = math.radians(t1)
th2 = math.radians(t2)
e1x = -d2 + l1 * math.cos(th1)
e1y = l1 * math.sin(th1)
e2x = d2 + l1 * math.cos(th2)
e2y = l1 * math.sin(th2)
dx = e2x - e1x
dy = e2y - e1y
dist = math.sqrt(dx*dx + dy*dy)
if dist < 1e-6 or dist > 2*l2:
continue
a = dist / 2
h2 = l2*l2 - a*a
if h2 < 0:
h2 = 0
h = math.sqrt(h2)
mx = (e1x + e2x) / 2
my = (e1y + e2y) / 2
px1 = mx + h * (dy / dist)
py1 = my + h * (-dx / dist)
px2 = mx - h * (dy / dist)
py2 = my - h * (-dx / dist)
if py1 >= py2:
ex = px1
ey = py1
else:
ex = px2
ey = py2
if abs(ex - 114.4) < 1.0 and abs(ey - 112.7) < 1.0:
print(f"Match: t1={t1} t2={t2} -> {ex:.1f}, {ey:.1f}")