121 字
1 分钟
Python 数学方法
2023-07-25

图形几何#

import numpy as np
def cal_Distance_Point2Point(p1:np.array, p2:np.array) -> np.array:
"""
@brief 计算 p1 到 p2 的距离
@param p1 [[x, y], ...]
@param p2 [[x, y], ...]
@return np.array([distance1, ....])
"""
return np.sqrt(np.power(p1[:,0]-p2[:,0],2) + np.power(p1[:,1]-p2[:,1],2))
def cal_Distance_Point2Line(p1:np.array, p2:np.array, p3:np.array, absolute:bool = True) -> np.array:
"""
@brief 计算 p1 到 p2 和 p3 连线的距离
@param p1, p2, p3 [[x, y], ...]
@param absolute True(只输出距离) False(带方向的距离)
@return np.array([distance1, ....])
"""
d1 = (p2[:,1]-p3[:,1]) * p1[:,0] + (p3[:,0]-p2[:,0]) * p1[:,1] + p2[:,0]*p3[:,1] - p2[:,1]*p3[:,0]
d2 = np.sqrt(np.power(p2[:,0]-p3[:,0],2) + np.power(p2[:,1]-p3[:,1],2))
distance = d1 / d2
return abs(distance) if absolute else distance
def calA
Python 数学方法
https://fuwari.vercel.app/posts/编程/python/python-数学方法/
作者
Asuwee
发布于
2023-07-25
许可协议
CC BY-NC-SA 4.0