python - 获取两点之间的距离
问题描述
所以我试图检查一个点是否位于一个圆圈内。我创建了这两个类:
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 并且不太了解语法。提前致谢。
解决方案
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)
推荐阅读
- android - 将自定义行为属性添加到视图
- android - 使用 js 中的 navigator.mediaDevices.getUserMedia 在 webview 中访问相机
- sql - REF 表的范围
- email - 替换 Outlook 电子邮件中的百分比
- java - 搜索最小 k 值的 PriorityQueue 算法返回不正确的结果
- kubernetes - Kubernetes 上的 ActiveMQ 代理 URL
- centos - 是否有可能更改 podman 容器的重启策略?
- javascript - 如何向幻灯片添加说明?
- java - 使用 Java Swing 将 JTable 中的内容输出到 TextArea
- ruby-on-rails - 多对多关系