我的名字是杰夫,我需要帮助我的代码,请我怎么做,以打印出距离
ibrsph3r1#
您使用了错误的距离度量。您在contains_point中实际计算的距离类似于曼哈顿距离,但您需要欧几里得距离才能正确计算:
contains_point
def distance(point_a, point_b): return math.sqrt(sum([(p - q)**2 for p, q in zip(point_a, point_b)]))
但事实上,你不必为此烦恼,因为已经有内置的函数:math.dist这样,contains_point方法看起来就像这样:
math.dist
def contains_point(self, p): return math.dist(p, self.center) <= self.radius
你也可以改进其他的东西。我给予你一个改进contains_square方法的提示:你不必检查所有4个角,如果你得到的最小的圆仍然包含正方形,并检查这个圆是否适合另一个。
contains_square
1条答案
按热度按时间ibrsph3r1#
您使用了错误的距离度量。您在
contains_point
中实际计算的距离类似于曼哈顿距离,但您需要欧几里得距离才能正确计算:但事实上,你不必为此烦恼,因为已经有内置的函数:
math.dist
这样,contains_point
方法看起来就像这样:你也可以改进其他的东西。我给予你一个改进
contains_square
方法的提示:你不必检查所有4个角,如果你得到的最小的圆仍然包含正方形,并检查这个圆是否适合另一个。