首页 > 解决方案 > 获取两点之间的距离

问题描述

所以我试图检查一个点是否位于一个圆圈内。我创建了这两个类:

 class Point:
  def __init__(self, x: int, y: int):
        self.x = x
        self.y = y

class Circle:
  def __init__(self, center, radius):
        self.center = Point(x,y)
        self.radius = radius   

现在我有这个功能:

def in_circle(circle: Circle, point: Point) -> bool:

我的想法是,当点与中心之间的距离大于半径时,它必须在圆外。我现在的问题是如何获得 Point(x,y) 和中心之间的距离。逻辑上我认为我可以通过使用毕达哥拉斯来解决这个问题,但我的问题是我刚开始使用 Python 并且不太了解语法。提前致谢。

标签: pythongeometry

解决方案


Python 有一个math.hypot获取三角形斜边的函数:

import math

def distance(p1: Point, p2: Point) -> float:
    return math.hypot(p2.x - p1.x, p2.y - p1.y)

或者,您可以自己使用math.sqrt**求幂:

import math

def distance(p1: Point, p2: Point) -> float:
    return math.sqrt((p2.x - p1.x) ** 2 + (p2.y - p1.y) ** 2)

推荐阅读