使用给定边数和边长的最大面积多边形构造[关闭]

问题描述 投票:0回答:0

我需要一些帮助来构建最大化面积的 n 边多边形。

我为 4 边多边形编写了以下代码,并将边长作为用户输入。

我无法将其转换为“任何 n 边多边形”的通用代码(n 的值和所有长度作为用户输入给出)

import numpy as np
import math


def area_t1(a, b, c):
    s = (a + b + c) / 2
    return math.sqrt(s * (s - a) * (s - b) * (s - c))


side_lengths = []

for i in range(4):
    side = int(input("Enter the individual side length"))
    side_lengths.append(side)

z = side_lengths[0] + side_lengths[1]

if side_lengths[0] > side_lengths[1]:
    y = side_lengths[0] - side_lengths[1]
else:
    y = side_lengths[1] - side_lengths[0]

areas = []

for i in np.arange(y + 0.1, z, 0.0001):
    a1 = area_t1(side_lengths[0], i, side_lengths[1])
    a2 = area_t1(side_lengths[2], i, side_lengths[3])
    area = a1 + a2
    areas.append(area)

print(max(areas))
python math geometry polygon
© www.soinside.com 2019 - 2024. All rights reserved.