应该是python基础题希望能用基础方法解决

第 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) 的总体积。您的函数不会接受参数,但会询问用户(按此顺序):
左球体的半径,
然后是中间球体的半径(与上面圆锥体的半径相同),
然后是右球体的半径,
然后是半径,然后是前锥体的高度,
最后是球体上方圆锥体的高度。

img

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)

运行

img

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)

运行

img

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)

运行

img


def volume_sphere(r=1):
    import math
    return 4 * math.pi * r ** 3 / 3

运行

img

def volume_cone(h,r=1):
    import math
    return math.pi*r**2*h/3

运行

img

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

运行

img

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)