我有一个等腰三角形,我想获取基本顶点的坐标。我知道顶部顶点的坐标,三角形的高度,所有边的长度以及内角。
我已将等腰三角形分为两半。用一半工作,我的三个边的长度分别为A,B和C,其中C是斜边,B是高度,A是(等腰三角形的一半的)底边。我使用毕达哥拉斯法则从A和B获得C。由于我知道C且知道顶部顶点的坐标(即B和C的交汇点),因此我尝试使用毕达哥拉斯规则/范数/欧几里得距离来查找C和A交汇点的坐标。在将x项等于0,然后将y项等于0后,这将导致两个二次方程。使用二次方程式求解每个二次方程,对于等腰三角形的两个基本顶点的x和y坐标,我分别得到两个结果。现在的问题是,将计算出的x和y坐标放回到原始的欧几里得距离/范数/规则公式中,并不能为我提供最初用于创建二次方程式的“ C”值。由于等腰三角形在2-D坐标系上倾斜,因此两个基本顶点的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))