ref:https://zhuanlan.zhihu.com/p/179438855

Author:二圈妹

曲率、挠率等概念的离散推广。在很多场景中我们会用到曲率、挠率。

比如狄利克雷能量(Dirichlet Energy)是平滑界(smoothing)的常客:

连续

先硬插一点info,因为构建离散曲线,大部分时间都一段一段连起来,曲线的连续性,有 C(continuity) 和 G(geometry continuity)字母来代表, 如果一段一段之间的导数是到 n 阶都能匹配的,那么我们说它是 C^n连续的,比如:

  • C0: 仅连接
  • C1: 切线和切线的导数一致
  • C2: 曲率一致

G则代表我们仅需n阶导成比例: 比如 G1 代表切线方向一致,大小可能不同。

图是一些连续性条件的示意图。一阶导数不连续( 曲线满足 C^0 ,而不满足 C^1 )通常是非常明显的,因为它显示出一个明显的尖角。二阶导数不连续有时候也是比较明显的。更高阶的不连续性可能是一个要紧的问题,这主要取决于实际的应用。例如,如果曲线代表-定的运动,二阶导数上突变是非常明显的,所以经常会用到三阶导数。如果有液体从曲线上流过去(例如,如果它的形状是飞机的机翼或者是船体),在四阶或五阶导数的不连续可能会引起湍流。

图片来自 《计算机图形学》 Peter Shirley

曲率

假设 f in R^n 是点坐标,0,1,2,...,m(m+1)Points,那么:

  • 弧长: \delta s_i = ||f_i - f_(i-1)||, i=1,2,...,m
  • 中点单位切向量: \delta f_i = (f_i - f_(i-1)) / \delta s_i ,i=1,2,...,m

这都很容易理解, 毕竟对于光滑的曲线:

  • 切向量: T = d r / d s

接下来看曲率:

曲线的曲率(curvature)就是针对曲线上某个点的切线方向角对弧长的转动率,通过微分来定义,表明曲线偏离直线的程度。

当然还有曲率向量的概念:

若某向量模数等于研究点处给定曲线的曲率,而该向量的方向与该点处曲线的主法线方向相同,则称该向量为曲率向量。

所以,

  • 顶点处的曲率向量(vertex normal curvature vector):
  • \delta^2 f_i = (\delta f_(i+1) - \delta f_i)/ [(\delta s_(i+1) + \delta s_i) /2],i=1,2,...,m-1.

对比连续曲线的曲率向量: \kappa = d T / d s

在此之上,我们可以继续看曲率的微分:

  • 曲率向量微分: \delta^3 f_i = (\delta^2 f_i - \delta^2 f_(i-1))/ \delta s_i, i=1,2,...,m

当然其实我们这里的 f_i 已经是很好的离散点了, 想象我们的点并不像我们上图画的这样,而是如下的 P_j :

这种情况我们当然就需要做一些预处理,比如可能出现的浮点预算错误.

当然如果严密一点那么我们需要 normalize,单位化这个次法向量。

挠率的定义是:

在初等三维曲线的微分几何中,一条曲线的挠率(torsion,或译扭率)度量了其扭曲的程度,即偏离平面曲线的程度。

既然挠率的定义是其偏离平面的程度, 所以中点的挠率可以定义成:

曲率、挠率的离散推广相关推荐

  1. 1-2 基于MATLAB的空间曲线曲率挠率的数值计算

    1-2 基于MATLAB的空间曲线曲率挠率的数值计算 1.工具 向量函数:设曲线r(s)=(x(s),y(s))r(s)=(x(s),y(s))r(s)=(x(s),y(s))是一条正则曲线,其中ss ...

  2. 曲线积分与曲面积分总结_曲线、曲率、挠率以及离散曲线

    曲线 曲线,听起来很简单,看起来也很直观,但是如果我们看一下维基百科上关于曲线的定义: 设 I=[a,b]为一实数区间,即实数集的非空子集,那么曲线c 就是一个连续函数c : I → X 的映像,其中 ...

  3. 光滑曲线_微分几何笔记(4) —— 二维三维空间中曲线的曲率以及环绕数

     本篇文章我们从一般化的 空间回到我们生活的 空间,看看低维空间中的曲线有哪些性质,主要计算下在非弧长参数下的曲线,曲率挠率的一般表达式. 最后引入环绕数的概念,讲讲怎么数曲线转了多少圈. 4.1 ...

  4. 微分几何笔记(4) —— 二维三维空间中曲线的曲率以及环绕数

    本篇文章我们从一般化的 Rn\mathbb{R}^nRn 空间回到我们生活的 R2,R3\mathbb{R}^2,\mathbb{R}^3R2,R3空间,看看低维空间中的曲线有哪些性质,主要计算下在非 ...

  5. 计算共形几何是计算机科学和,科学网—《计算共形几何》教程第一章 - 顾险峰的博文...

    [最近老顾等人合著的汉语教程<计算共形几何>已经完成初稿.这里我们将第一章公布,其他章节会在清华暑期课程中讲授.希望大家批评指正,不吝赐教.有兴趣预定者,请联系gu@cmsa.fas.ha ...

  6. 从双曲几何到Gauss-Bonnet-Chern定理

    编者按:在正式转载这篇文章前,需要说明的是:Gauss-Bonnet定理                                               其中Γ是二维可定向闭曲面, 其边界 ...

  7. 基于运动学模型的轨迹跟踪控制

    章四 基于运动学模型的轨迹跟踪控制 MPC(4)基于运动学模型的轨迹跟踪控制器设计 无人驾驶车辆模型预测控制(龚建伟)第四章 基于运动学模型的轨迹跟踪控制(仿真部分) 无人车辆在惯性坐标系中,车辆必须 ...

  8. 微分几何的24-33节笔记暂记(第一基本形式,第二基本形式)

    微分几何笔记 曲面上的度量 第24节:曲面上的度量(第一基本形式) 第一基本形式: 看一下r的微分:dr=r'udu+r'vdv(du,dv是两个数量,dr也表示成了切向量)dr^2=(r'udu)^ ...

  9. 曲率流的计算机应用,科学网—清华笔记:计算共形几何讲义 (23)离散曲面曲率流 (Discrete Surface Ricci Flow)V - 顾险峰的博文...

    前面我们介绍了离散曲面的曲率流理论,曲面上配备着欧氏度量带有奇异点.这次,我们介绍双曲离散曲面的曲率流理论.对于欧拉示性数为负的曲面,其单值化度量自然是双曲度量.双曲度量具有非常多的优点,因此在工程实 ...

最新文章

  1. IQKeyboardManager使用方法
  2. 7-27 冒泡法排序 (C语言)
  3. python之模块csv之CSV文件的写入(按行写入)
  4. Java 10更新汇总,新的编译器通吃主流编程语言
  5. 1SGD、Momention原理
  6. 谈谈进程和线程的区别
  7. 如何提升你的代码能力?
  8. 【PDF】处理pdf 文档的相关功能包总结
  9. WayOS路由器企业应用方案
  10. vue中文件上传方法
  11. 浅谈Java内存模型——JVM
  12. 36 Questions for Increasing Closeness
  13. Android 8.1user版本默认开启开发者模式
  14. Activiti6.0 用户任务分配方式总结(单人任务、多人任务)
  15. linux裸设备详解,Linux裸设备管理详解(原创)
  16. block locality
  17. 三级等保 mysql8.0.24密码策略设置
  18. Nacos如何实现统一配置管理
  19. iOS底层weak的实现原理
  20. Python的PyOpenGL

热门文章

  1. c# mysql 编码_c# 连接MySQL中文乱码问题的正确方案
  2. Oracle round 函数(四舍五入)
  3. Rockylinux9.1最小化安装、初始化配置、更新内核
  4. STM32——待机唤醒实验-低功耗-M4
  5. dede 掉调用优酷视
  6. 数据结构与算法学习(第一天 循环队列)
  7. Boost_Asio(4) strand
  8. 新定义智能家居,华为真的准备好了?
  9. 惠普暗影精灵9和光影精灵9区别对比评测 哪个好
  10. 2020 能否成为区块链游戏的自证之年?