python-3.x 使用3组坐标的三角形面积[闭合]

xcitsw88  于 2023-02-06  发布在  Python
关注(0)|答案(2)|浏览(103)

已关闭。此问题需要超过focused。当前不接受答案。
**想要改进此问题吗?**更新此问题,使其仅关注editing this post的一个问题。

三年前关闭了。
Improve this question
我正在做一个问题,我需要用给定的3组坐标来求三角形的面积
那么,将数组转换为(a1,b1)(a2,b2)(a3,b3)中的对的逻辑是什么,以及如何使用这些顶点来求三角形的面积
下面是我的代码

def getTriangleArea(x, y):

///What will be the code 

if __name__ == '__main__':
    fptr = open(os.environ['OUTPUT_PATH'], 'w')

    x_count = int(input().strip())

    x = []

    for _ in range(x_count):
        x_item = int(input().strip())
        x.append(x_item)

    y_count = int(input().strip())

    y = []

    for _ in range(y_count):
        y_item = int(input().strip())
        y.append(y_item)

    result = getTriangleArea(x, y)

    fptr.write(str(result) + '\n')

    fptr.close()
qoefvg9y

qoefvg9y1#

三角形的面积,其中(x1,y1)是第一坐标,(x2,y2)是第二坐标,(x3,y3)是第三坐标。

Area = 1/2[x1(y2 - y3) + x2(y3 - y1) + x3(y1 - y2)]
x = [2, 3, 7]
y = [4, -6, 8]

def get_area(x, y):
    area = 0.5 * (x[0] * (y[1] - y[2]) + x[1] * (y[2] - y[0]) + x[2]
                  * (y[0] - y[1]))
    return int(area)

coords = zip(x, y)
print('Area of points {}, {}, {} is {}'.format(*coords, get_area(x, y)))

输出

Area of points (2, 4), (3, -6), (7, 8) is 27
lh80um4z

lh80um4z2#

假设您的3个输入点的坐标为:

x1, y1
x2, y2
x3, y3

你可以使用勾股定理来求出所有边的长度:

l1 = sqrt((x1 - x2)**2 + (y1 - y2)**2)
l2 = sqrt((x2 - x3)**2 + (y2 - y3)**2)
l3 = sqrt((x3 - x1)**2 + (y3 - y1)**2)

然后用赫伦公式求三角形的面积:

p = (l1 + l2 + l3)/2
area = sqrt(p * (p - l1) * (p - l2) * (p - l3))

相关问题