def midpoint(p1, p2):
"""
PRE: p1 and p2 are Point objects (from the graphics module)
POST: a new Point equidistant from and co-linear with p1 and p2
is computed and returned
Run Code Online (Sandbox Code Playgroud)
使用以下规范编写函数中点
Hug*_*ell 11
你使用什么图形模块?(pypi包含几十个,没有一个名为'graphics')Point的界面是什么样的?
如果Point已命名属性(如px,py等),您可以执行类似的操作
def midpoint(p1, p2):
return Point((p1.x+p2.x)/2, (p1.y+p2.y)/2)
Run Code Online (Sandbox Code Playgroud)
如果Point可以作为列表访问(如p [0],p [1]等),您可以改为
def midpoint(p1, p2):
return Point((p1[0]+p2[0])/2, (p1[1]+p2[1])/2)
Run Code Online (Sandbox Code Playgroud)
如果Point有点加法和标量除法或乘法重载,你可以这样做
def midpoint(p1, p2):
return (p1+p2)/2 # or *0.5
Run Code Online (Sandbox Code Playgroud)
(虽然严格来说,添加两个点应该没有意义,从另一个点减去一个点应该给你一个Vector - 因此
def midpoint(p1, p2):
return p1 + (p2-p1)/2 # or *0.5
Run Code Online (Sandbox Code Playgroud)
您可以像编写任何其他函数一样编写它:
def midpoint(x1, y1, x2, y2):
return ((x1 + x2)/2, (y1 + y2)/2)
Run Code Online (Sandbox Code Playgroud)
或类似的东西。这取决于您是将点表示为单个坐标还是对象或列表等。
自己计算一下?
两点之间的中间点是它们的平均值。那是,
P_mid = (P1 + P2) / 2
Run Code Online (Sandbox Code Playgroud)
如何表示“点”取决于您。它可以是 2D、3D 甚至 nD。您可能想要实现__add__and__div__以及其他“数字”运算。
| 归档时间: |
|
| 查看次数: |
24577 次 |
| 最近记录: |