关于#Ar#的问题,如何解决?(语言-python)

建立一个自定义模块myFuncs.py
在里面编写一个求两点距离的函数 distance,
然后再在这个文件中利用这个distance函数编写一个求三角形面积的函数TriangleArea.

在exec.py中导入myFuncs模块,输入或赋值五边形的五点坐标, 利用TriangleArea函数
求出并打印五边形面积
三角形面积可以使用海伦公式.
假设在平面内,有一个三角形,边长分别为a、b、c,三角形的面积S可由以下公式求得:
S=sqrt(p(p-a)(p-b)(p-c))
而公式里的p为半周长:
p=(a+b+c)/2

我试试看😋,能不能写🧐


  • 网搜公式

    img

  • 据公式写两点距离函数

    img

Python 代码

#!/sur/bin/nve python
# coding: utf-8


'''

filename = 'myFuncs.py'

'''

def distance(p1, p2):
    ''' 求平面两点距离 '''
    from math import sqrt # 载入开平方方法 math.sqrt()
    return sqrt((p1[0] - p2[0])**2 + (p1[1] - p2[1])**2)



if __name__ == '__main__':
    p1, p2 = (0, 0), (5, 0)
    p1, p2 = (0, 0), (5, 5)
    print(f"\n两点距离:({p1}, {p2}] = {distance(p1, p2):.2f}")
  • 代码运行效果

    img


    img


  • 求三角形面积函数

 def trianglearea(p: tuple) -> float:
    ''' 据点坐标求三角形面积 '''
    from math import sqrt # 载入开平方方法 math.sqrt()

    if len(p) > 3:
        input(f"\n{'坐标参数太多!':^43}\n{'':~^50}\n{'任意键继续……':^45}")
        return

    p1, p2, p3 = p
    a, b, c = distance(p1, p2), distance(p1, p3), distance(p3, p2) # 调用两点距离函数求三角形三边。
    print('\n三角形三个边长:', a, b, c)
    p = sum([a, b, c])/2
    
    return sqrt(p * (p-a) * (p-b) * (p-c))

  • 代码运行效果截屏图片

    img


    img


  • 五边形切分可以成三个三角形

    img

  • exec.py 文件内容

    img

  • 求五边形面积代码


#!/sur/bin/nve python
# coding: utf-8
import myFuncs as myfun # 载入自定义模块 myFuncs.py 。

p1 = (-2, 7)
p2 = (4.9, 6.8)
p3 = (7, 2.5)
p4 = (2, -3)
p5 = (-3, 0)

p = '\n'.join(map(str, [p1, p2, p3, p4, p5])) # 格式化输出五边形顶点座标。
s = sum([myfun.trianglearea(p1, p2, p3), myfun.trianglearea(p1, p3, p4), myfun.trianglearea(p1, p4, p5)]) # 计算五边形切分的三个三角形面积总和。


print(f"\n\n五边形顶点坐标:\n{p}\nS[p1~p5] = {s:.2f}\n")
  • 代码运行效果截屏图片

    img


不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 以下回答来自chatgpt:

    解决方案:

    Step 1: 创建一个新的Python文件,称之为distance.py,编写求两点距离函数distance和求三角形面积的函数TriangleArea。

    # distance.py
    
    import math
    
    def distance(p1, p2):
        """
        给出两点坐标,计算两点之间的欧氏距离
        :param p1: tuple, 第一个点坐标
        :param p2: tuple, 第二个点坐标
        :return: float, 两点之间的距离
        """
        return math.sqrt((p1[0] - p2[0]) ** 2 + (p1[1] - p2[1]) ** 2)
    
    
    def TriangleArea(p1, p2, p3):
        """
        给出三个点坐标,计算三角形面积
        :param p1: tuple, 第一个点坐标
        :param p2: tuple, 第二个点坐标
        :param p3: tuple, 第三个点坐标
        :return: float, 三角形面积
        """
        a, b, c = distance(p1, p2), distance(p2, p3), distance(p3, p1)
        S = (a + b + c) / 2
        return math.sqrt(S * (S - a) * (S - b) * (S - c))
    

    Step 2: 创建一个新的Python文件,称之为main.py,导入distance模块,使用TriangleArea函数计算五边形的面积。

    # main.py
    
    import distance
    
    # 定义五边形的坐标
    p1 = (0, 0)
    p2 = (4, 0)
    p3 = (6, 2)
    p4 = (4, 4)
    p5 = (0, 4)
    
    # 计算五边形的面积
    S = distance.TriangleArea(p1, p2, p3) + distance.TriangleArea(p1, p3, p4) + distance.TriangleArea(p1, p4, p5)
    
    print('五边形的面积为:', S)
    

    Step 3: 在命令行终端中运行main.py文件,可以得到五边形的面积。

    python main.py
    # 输出:五边形的面积为: 20.0 
    

    注:如果两个py文件不在同一个目录下,则需要将distance.py所在目录添加到Python模块搜索路径中。可以在main.py中使用以下语句导入distance模块。

    import sys
    sys.path.append("/path/to/distance.py")
    import distance
    

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^

以下内容由CHATGPT及阿里嘎多学长共同生成、有用望采纳:

我可以为您提供解决这个问题的思路。

首先,在myFuncs.py中编写一个distance函数,用于计算两点之间的距离。代码如下:

import math

def distance(point1, point2):
    x1, y1 = point1
    x2, y2 = point2
    return math.sqrt((x2-x1)**2 + (y2-y1)**2)

然后,利用这个distance函数编写一个TriangleArea函数,用于计算三角形的面积。代码如下:

def TriangleArea(point1, point2, point3):
    a = distance(point1, point2)
    b = distance(point2, point3)
    c = distance(point3, point1)
    p = (a + b + c) / 2
    return math.sqrt(p * (p - a) * (p - b) * (p - c))

最后,在exec.py中导入myFuncs模块,输入或赋值五边形的五点坐标,利用TriangleArea函数求出五边形面积并打印。代码如下:

import myFuncs

point1 = (0, 0)
point2 = (0, 5)
point3 = (3, 7)
point4 = (6, 5)
point5 = (6, 0)

area = myFuncs.TriangleArea(point1, point2, point3) + \
       myFuncs.TriangleArea(point3, point4, point5)

print("五边形的面积为:", area)

输出结果为:

五边形的面积为: 33.0