У меня есть две точки X = (x1,y1)
и Y=(x2,y2)
в декартовой плоскости.Мне нужно найти третью точку Z = (x,y)
такую, чтобы эти три точки составляли равносторонний треугольник.
Я вычисляю евклидово расстояние между двумя точками, используя следующий пример кода:
def distance(points, i, j):
dx = points[i][0] - points[j][0]
dy = points[i][1] - points[j][1]
return math.sqrt(dx*dx + dy*dy)
Теоретически мне нужно приравнять расстояния XZ
и YZ
к XY
. Это дает нам два возможных ответа, и мне они оба тоже нужны.Но у меня возникают трудности с инициализацией точки Z
в моем коде.Может кто-нибудь, пожалуйста, помогите мне с этим?Ниже приведен пример того, что я пытался.
L = [0, 6] #known two points
d= distance(points, L[0], L[1])
x = Symbol('x')
y = Symbol('y')
newpoint = x,y #coordintes of the third point of the triangle
f1 = distance(points, L[0], newpoint)
f2 = distance(points, L[1], newpoint)
print(nsolve((f1, f2), (x, y), (d,d)))
Но при этом возвращается следующая ошибка:
File "/Users/*.py", line 99, in <module>
f1 = distance(points, L[0], newpoint)
File "/Users/*.py", line 36, in distance
dx = points[i][0] - points[j][0]
TypeError: list indices must be integers or slices, not tuple