惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

宝玉的分享
宝玉的分享
J
Java Code Geeks
S
SegmentFault 最新的问题
L
LangChain Blog
M
MIT News - Artificial intelligence
Stack Overflow Blog
Stack Overflow Blog
IT之家
IT之家
量子位
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
雷峰网
雷峰网
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
The Cloudflare Blog
MongoDB | Blog
MongoDB | Blog
Microsoft Security Blog
Microsoft Security Blog
腾讯CDC
H
Help Net Security
阮一峰的网络日志
阮一峰的网络日志
Jina AI
Jina AI
N
Netflix TechBlog - Medium
A
About on SuperTechFans
博客园 - 叶小钗
美团技术团队
人人都是产品经理
人人都是产品经理
D
DataBreaches.Net

又见苍岚

COLMAP PatchMatch Stereo 算法详解 事件驱动的状态机框架:从理论到工程实践 Git 在国内网络环境下无法 Push 的排查与修复 —— 配置 Clash 代理 分段五次多项式插值原理详解 路径插值方法深度对比研究 Claude Code 使用指南 OpenClaw 记忆管理与技能创建指南 CBS(Conflict-Based Search)算法详解 A* 算法及其变种详解 OpenClaw 配置多 Agents Windows Powershell 无法加载文件,因为在此系统上禁止运行脚本问题的解决方案 MaxClaw 安装流程 大模型 AI 名词介绍 AList 网盘聚合工具简介 Protobuf 简介与测试 Claude Code 简介以及 GLM 4.7 模型接入 Github 歌词下载工具 163MusicLyrics Python __getattr__ 懒加载 Python TypedDict 机器人仿真平台 Gazebo 安装记录 机器人仿真平台 Gazebo 简介 多机器人路径规划问题(Multi-Agent Path Finding, MAPF)简介 Python exifread 读取修改过的 jpeg 信息错误问题修复 3D 坐标系变换的理解 3D 旋转矩阵基本概念 MongoDB Compass 介绍 Python 环境管理工具 uv Flutter 开发指南 Snipaste 安装下载与黑屏问题解决方案 全局路径规划算法记录
曲率
Yiwei Zhang · 2024-09-25 · via 又见苍岚

曲率用于描述函数弯曲的程度,本文记录定义以及计算方法。

定义

曲率:针对曲线上某个点的切线方向角对弧长的转动率。

曲率越大,表示曲线的弯曲程度越大。

曲率用 $K$ 表示;切线方向角用 $α$ 表示;弧长用 $s$ 表示;半径用 $r$ 表示。

概念定义: 对于连续可微的函数区间上一点 $x$,其距离无限接近 0 的函数上另一点 $x’$ ,距离为 $\Delta s$,函数在点 $x$ 和 $x’$ 的切线夹角为 $\Delta \alpha$,那么这两个切线过 $x$ 和 $x’$ 的垂线交点 $o$,由于 $\Delta s$ 长度接近 0,因此可以认为 $ox = ox’$,以 $o$ 为圆心, $ox$ 为半径的圆叫做曲率圆(密切圆), $o$ 就是点 $x$ 曲率圆的圆心——曲率中心,$ox$ 为曲率半径,长度为 $r$,那么就有等式:

$$ \begin{array} c \Delta s = r \Delta \alpha \\ r = \frac{\Delta s}{\Delta \alpha} \end{array} $$

半径长度为非负数,距离趋于零,于是上式变为:
$$
r = \mathop {\lim }\limits_{\Delta s \to 0} |\frac{\Delta s}{\Delta \alpha}|
$$
曲率: 曲率定义为曲率半径的倒数

$$ {\rm{k}} = \mathop {\lim }\limits_{\Delta s \to 0} \left| {\frac{{\Delta \alpha }}{{\Delta s}}} \right|=|\frac{d \alpha}{d s}|=\frac{1}{r} $$

推导过程

公式推导

设曲线的方程为 $y=f(x)$,且 $f(x)$ 具有二阶导数。

$x$ 点上的切线角度为 $\alpha$,$\tan \alpha$ 为 $y’=\frac{dy}{dx}$,即 $\tan \alpha = y’$。

求 $d \alpha$:

$$ \begin{array}{c} \alpha = \arctan y' \\ \frac{d\alpha}{dx}=(\arctan y')'\\ d\alpha=(\arctan y')'dx\\ =\frac{y''}{1+y'^2}dx \end{array} $$

其中:$(arctanx)'=1/(1+x^2)$

再求 $d s$:

$$ \begin{array} c d s = \sqrt{dx^2+dy^2}\\ =\sqrt{dx^2+dx^2 \tan ^2 \alpha}\\ =\sqrt{1+\tan ^2 \alpha} dx\\ =\sqrt{1 + y'^2}dx \end{array} $$

因此 :

$$ k=|\frac{d \alpha}{d s}|=|\frac{y''}{{(1+y'^2)}^{\frac{3}{2}}}| $$

参数方程

同理,若曲线由参数方程给出:

$$ \begin{cases}x=x(t)\\y=y(t)\end{cases} $$

则:

$$ k=\frac{\left|\dot{x}\ddot{y}-\ddot{x}\dot{y}\right|}{\left(\dot{x}^{2}+\dot{y}^{2}\right)^{3/2}} $$ 推导过程,$x$ 表示为 $\omega\prime(t)$,$y$ 表示为 $\varphi\prime(t)$,那么之前的 $y'$ 变为: $$ y\prime={\frac{dy}{dx}}={\frac{dy}{dt}}\bullet{\frac{1}{\frac{dx}{dt}}} =\frac{\omega\prime(t)}{\varphi\prime(t)} $$

再推导 $y’'$:

$$ \begin{aligned} &y^{\prime\prime}=\frac{d^{2} y}{dx^{2}}=\frac{d\left(\frac{dy}{dx}\right)}{dx}=\frac{d\left(\frac{dy}{dx}\right)}{dt}\bullet\frac{1}{\frac{dx}{dt}} \\ &=\frac{\omega^{\prime\prime}(t)\varphi\prime(t)-\omega\prime(t)\varphi^{\prime\prime}(t)}{\varphi\prime(t)^{2}}\bullet\frac{1}{\varphi\prime(t)} \\ &=\frac{\omega^{\prime\prime}(t)\varphi\prime(t)-\omega\prime(t)\varphi^{\prime\prime}(t)}{\varphi\prime(t)^{3}} \\ \end{aligned} $$

计算曲率 $k$:

$$ \begin{aligned} &k=\frac{|y^{\prime\prime}|}{\left(1+y\prime^2\right)^{\frac32}} \\ &=\frac{\left|\frac{\omega''(t)\varphi\prime(t)-\omega\prime(t)\varphi''(t)}{\varphi\prime\left(t\right)^3}\right|}{\left[1+\frac{\omega\prime\left(t\right)^2}{\varphi\prime\left(t\right)^2}\right]^{\frac32}} \\ &=\frac{\left|\frac{\omega''(t)\varphi'(t)-\omega'(t)\varphi''(t)}{\varphi'(t)^3}\right|}{\left[\frac{\varphi'\left(t\right)^2+\omega'\left(t\right)^2}{\varphi'\left(t\right)^2}\right]^{\frac32}} \\ &=\frac{\left|\frac{\omega^{\prime\prime}(t)\varphi\prime(t)-\omega\prime(t)\varphi^{\prime\prime}(t)}{\varphi\prime\left(t\right)^3}\bullet\varphi\prime(t)^3\right|}{\left[\varphi\prime(t)^2+\omega\prime(t)^2\right]^{\frac{3}{2}}} \\ &=\frac{|\omega^{\prime\prime}(t)\varphi\prime(t)-\omega\prime(t)\varphi^{\prime\prime}(t)\mid}{\left[\varphi\prime(t)^2+\omega\prime(t)^2\right]^{\frac32}} \end{aligned} $$

总结

曲率: $$ {k=\frac{{ \left| {{y '' }} \right| }}{{{ \left( 1+{y \prime }\mathop{{}}\nolimits^{{2}}\right. }\mathop{ {\left) \right.} }\nolimits^{{\frac{{3}}{{2}}}}}}} $$ 参数方程确定的曲线的曲率: $$ {k=\frac{{ \left| {{{ \omega '' }} \left( t \left) { \varphi \prime } \left( t \left) -{ \omega \prime } \left( t \left) {{ \varphi '' }} \left( t \left) \right. \right. \right. \right. \right. \right. \right. \right. } \right| }}{{ \left[ {{{ \varphi \prime } \left( t \left) \mathop{{}}\nolimits^{{2}}\right. \right. }+{{ \omega \prime } \left( t \left) \mathop{{}}\nolimits^{{2}}\right. \right. }} \left] \mathop{{}}\nolimits^{{\frac{{3}}{{2}}}}\right. \right. }}} $$ 曲率半径: $$ {{ r =\frac{{1}}{{k}}=}\frac{{ \left( 1+{y \prime }\mathop{{}}\nolimits^{{2}} \left) \mathop{{}}\nolimits^{{\frac{{3}}{{2}}}}\right. \right. }}{{ \left| {{y '' }} \right| }}} $$

参考资料

文章链接:
https://www.zywvvd.com/notes/study/math/curvature-radius/curvature-radius/