代码拉取完成,页面将自动刷新
"""
计算曲率半径
"""
import numpy as np
def calculate_curvature(points: np.ndarray) -> float:
"""
曲率半径计算函数 \n
ref: https://github.com/Pjer-zhang/PJCurvature \n
:param points: 三个点的坐标
:return: 曲率半径
"""
x = points[:, 0]
y = points[:, 1]
t_a = np.linalg.norm([x[1] - x[0], y[1] - y[0]])
t_b = np.linalg.norm([x[2] - x[1], y[2] - y[1]])
m = np.array([[1, -t_a, t_a**2], [1, 0, 0], [1, t_b, t_b**2]])
a = np.matmul(np.linalg.inv(m), x)
b = np.matmul(np.linalg.inv(m), y)
kappa = 2 * (a[2] * b[1] - b[2] * a[1]) / (a[1] ** 2.0 + b[1] ** 2.0) ** 1.5
return kappa
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。