在给定的高度,顶部顶点坐标和所有边长的情况下,找到等腰三角形基本顶点的坐标

时间:2019-04-29 17:19:24

标签: python euclidean-distance quadratic

我有一个等腰三角形,我想获取基本顶点的坐标。我知道顶部顶点的坐标,三角形的高度,所有边的长度以及内角。

我已将等腰三角形分为两半。用一半工作,我的三个边的长度分别为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))

0 个答案:

没有答案