У меня есть равнобедренный треугольник, и я хочу получить координаты базовых вершин.Я знаю координаты верхней вершины, высоту треугольника, длину всех сторон и внутренние углы.
Я разделил равнобедренный треугольник на две половины.Работая с одной половиной, у меня есть длина трех сторон, чтобы быть A, B и C, где C - гипотенуза, B - высота, и A - основание (половины равнобедренного треугольника).Я получил C от A и B, используя правило Пифагора.Поскольку я знаю C и знаю координаты верхней вершины (то есть точки, где встречаются B и C), я пытаюсь вернуться назад, используя правило Пифагора / норма / евклидово расстояние, чтобы найти координаты точки, где встречаются C и A,Это приводит к двум квадратным уравнениям после приравнивания x-членов к 0, а затем y-членов к 0. Решая каждое квадратное уравнение, используя квадратную формулу, я получаю два результата каждый для координат x и y обеих базовых вершин полного равнобедренного треугольника,Проблема сейчас в том, что возвращение вычисленных координат x и y в исходную евклидову формулу расстояния / нормы / правила не дает мне первоначальное значение «C», которое я использовал для создания квадратных уравнений.Поскольку равнобедренный треугольник наклонен в двумерной системе координат, x-координаты и y-координаты обеих базовых вершин будут различаться, поэтому необходимы строки кода 8,9,17 и 18. Печать строк 21 и 22Предполагается, чтобы дать мое первоначальное значение C в обоих случаях, но они не дают.Может кто-нибудь помочь?
a_x = 1
b_x = (-2 * point[0]) # point[0] = x-coordinate of point
c_x = point[0]**2 + point[1]**2 - C**2 # point[1] = y-coordinate of point
d_x = (b_x**2) - (4 * a_x * c_x)
sqr_d_x = cmath.sqrt(d_x) # Takes the square root of d_x
x_1 = (-b_x - sqr_d_x)/(2 * a_x) #Sol 1,x-coordinate of base vertice
x_2 = (-b_x + sqr_d_x)/(2 * a_x) #Sol 2,x-coordinate of base vertice
Pw_x = min(x_1,x_2) # Since isosceles triangle is slanted on 2D space
Pz_x = max(x_1,x_2)
a_y = 1
b_y = (-2 * point[1])
c_y = point[0]**2 + point[1]**2 - C**2
d_y = (b_y**2) - (4 * a_y * c_y)
sqr_d_y = cmath.sqrt(d_y)
y_1 = (-b_y - sqr_d_y)/(2 * a_y)
y_2 = (-b_y + sqr_d_y)/(2 * a_y)
Pw_y = max(y_1,y_2)
Pz_y = min(y_1,y_2)
Pw = (Pw_x,Pw_y) # left base vertice
Pz = (Pz_x,Pz_y) # right base vertice
print(cmath.sqrt((point[0] - Pw_x)**2 + (point[1] - Pw_y)**2))
print(cmath.sqrt((point[0] - Pz_x)**2 + (point[1] - Pz_y)**2))