建立一个自定义模块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
我试试看😋,能不能写🧐
网搜公式
据公式写两点距离函数
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}")
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))
五边形切分可以成三个三角形
exec.py 文件内容
求五边形面积代码
#!/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")
解决方案:
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