使用3组坐标的三角形面积

问题描述 投票:-1回答:2

我正在做一个问题,我需要在给定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()
python area
2个回答
1
投票

假设您有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))

0
投票

(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=list(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.0 
© www.soinside.com 2019 - 2024. All rights reserved.