第 1 部分:在 2D 中
编写一个函数coord_centre_cercle,它将圆上两个直径相对的点的坐标x1、y1、x2、y2作为参数(例如,如图 (a) 所示),并返回圆心的 x、y 坐标圈。
编写一个coord_bas_losange函数,该函数将放置在垂直菱形上的两点的坐标x1、y1、x2、y2作为参数,如图 (b)(左顶点的第一个,上顶点的第二个),并返回菱形下顶点的 x, y 坐标。
编写一个 不带参数的coordDEF函数,它向用户询问图 (c) 中点 A、B、C 的坐标(按此顺序,从每个点开始,先是横坐标,然后是 l'纵坐标),然后其中返回6个返回值xD, yD, xE, yE, xF, yF依次对应点D、E、F的坐标。
第 2 部分:在 3D 中
注意: π 的值在math.pi的数学模块中可用
编写一个函数volume_sphere以球体半径r为参数(默认为 1)并返回其体积:V = 4πr 3 /3。
编写一个volume_cone函数,它将高度h以及旋转锥底的半径r作为参数(默认r将为 1)并返回锥体的体积:V = πr 2 h / 3。
编写一个函数volume_figure 返回图 (d) 的总体积。您的函数不会接受参数,但会询问用户(按此顺序):
左球体的半径,
然后是中间球体的半径(与上面圆锥体的半径相同),
然后是右球体的半径,
然后是半径,然后是前锥体的高度,
最后是球体上方圆锥体的高度。
def coord_centre_cercle(x1,y1,x2,y2):
if x1<x2:
x=(x2-x1)/2+x1
else:
x = (x1 - x2) / 2 + x2
if y1<y2:
y=(y2-y1)/2+y1
else:
y = (y1 - y2) / 2 + y2
return (x,y)
运行
def coord_bas_losange(x1,y1,x2,y2):
if x1<x2:
x=x2
else:
x =x1
if y1<y2:
y=y1-(y2-y1)
else:
y =y2-(y1-y2)
return (x,y)
运行
def coordDEF():
AX, AY = list(map(float, input("A=>x,y").split(',')))
BX, BY = list(map(float, input("B=>x,y").split(',')))
CX, CY = list(map(float, input("C=>x,y").split(',')))
xD = (BX - AX) / 2 + AX
yD = (BY - AY) / 2 + AY
xE = BX
yE = AY - (BY - AY)
xF = (CX - xE) / 2 + xE
yF = (CY - yE) / 2 + CY
return (xD, yD, xE, yE, xF, yF)
运行
def volume_sphere(r=1):
import math
return 4 * math.pi * r ** 3 / 3
运行
def volume_cone(h,r=1):
import math
return math.pi*r**2*h/3
运行
def volume_figure():
import math
lr=eval(input("左球体的半径"))
cr=eval(input("中间球体的半径"))
rr=eval(input("右球体的半径"))
qh,qr=eval(input("前锥体的半径,高度"))
uh,ur=eval(input("球体上方圆锥体的半径,高度"))
# 左球体的体积+中间球体的体积+右球体的的体积+前锥体的体积+球体上方圆锥体的体积
return 4 * math.pi * lr ** 3 / 3+4 * math.pi * cr ** 3 / 3+4 * math.pi * rr ** 3 / 3+math.pi*qr**2*qh/3+math.pi*ur**2*uh/3
运行
def coord_centre_cercle(x1,y1,x2,y2):
return ((x1+x2)/2,(y1+y2)/2)
def coord_bas_losange(x1,y1,x2,y2):
return (x2,2*y1-y2)
def coordDEF():
xA,yA=map(float,input('请输入A点坐标,以空格隔开:').split())
xB,yB=map(float,input('请输入B点坐标,以空格隔开:').split())
xC,yC=map(float,input('请输入C点坐标,以空格隔开:').split())
xD,yD=coord_centre_cercle(xA,yA,xB,yB)
xE,yE=coord_bas_losange(xA,yA,xB,yB)
XF,yF=coord_centre_cercle(xE,yE,xC,yC)
return (xD,yD,xE,yE,xF,yF)
def volume_sphere(r):
return 4*math.pi*r*r*r/3
def volume_cone(h,r=1):
return math.pi*r*r*h/3
def volume_figure():
r1=float(input('左球体的半径:'))
r2=float(input('中间球体的半径:'))
r3=float(input('右球体的半径:'))
r4=float(input('前锥体的半径:'))
h1=float(input('前锥体的高度:'))
h2=float(input('球体上方圆锥体的高度:'))
v=volume_sphere(r1)+volume_sphere(r2)+volume_sphere(r3)+volume_cone(h1,r4)+volume_cone(h2,r2)
return v
觉得有用的话采纳一下哈
import math
def coord_centre_cercle(x1, y1, x2, y2):
return (x1 + x2) / 2, (y1 + y2) / 2
def coord_bas_losange(x1, y1, x2, y2):
return x2, 2 * y1 - y2
def coordDEF():
xa = float(input("请输入 A 横坐标:"))
ya = float(input("请输入 A 纵坐标:"))
xb = float(input("请输入 B 横坐标:"))
yb = float(input("请输入 B 纵坐标:"))
xc = float(input("请输入 C 横坐标:"))
yc = float(input("请输入 C 纵坐标:"))
xD, yD = coord_centre_cercle(xa, ya, xb, yb)
xE, yE = coord_bas_losange(xa, ya, xb, yb)
xF, yF = coord_centre_cercle(xE, yE, xc, yc)
return xD, yD, xE, yE, xF, yF
def volume_sphere(r=1):
return (4 * math.pi * r ** 3) / 3
def volume_cone(h, r=1):
return (math.pi * h * r ** 2) / 3
def volume_figure():
left_ball = float(input("请输入左球体的半径:"))
mid_ball = float(input("请输入中间球体的半径:"))
right_ball = float(input("请输入右球体的半径:"))
before_cone = float(input("请输入前椎体的高度:"))
on_cone = float(input("请输入上椎体的高度:"))
return volume_sphere(left_ball) + volume_sphere(mid_ball) + volume_sphere(right_ball) + \
volume_cone(before_cone, mid_ball) + volume_cone(on_cone, mid_ball)