曲率Curvature,变形,level set

1 preface:

最近在看Level Set Methods and Dynamic Implicit Surface一书(见文章末),该书详细讲了level set methods,一类最近应用非常广泛的解决动态交互面计算的方法(这个方法我以后有时间慢慢展开讨论)。其中,曲率在图形变形、运动中经常用到。在Level Set Method中有应用曲率进行变形的实例,曲率经过一定函数映射可以与速度场进行联系(很多人通过曲率来计算速度场初值)。事实上,mean curvature flow本来就是有物理意义的,肥皂泡的形态演变,油滴到水面后的变形都遵循这个原理。

300px-Girl_blowing_bubbles

2 Introducation

对于曲线上的一点,曲率定义的形式是 角度改变/长度改变,(不牵涉符号,恒非负)也就是说沿着曲线的走势,在单位长度上角度改变的越多,该点的曲率越大。

在三维曲面中,经过曲面上一点有无数条的曲线(其实曲率对于三维而言,是个外来的非本质extrinsic概念),曲率怎么定义呢?或者说我们怎么求一个平均曲率呢?有一种取mean curvature的方法就是找到两条曲线,对应该点的最大k1和最小的曲率k2,相加除以2。Gauss curvature 是把k1和k2相乘。

在Level Set Method中,(三维)曲率定义为该点法线量的散度。展开后,x,y,z对称但总共有9项之多。

curvature

直接计算是很navie的事情。这里面再次有数值方法上场,当繁琐的数理公式要在计算机上跑,数值方法就是梦想照进现实而不至于失真太多。Level Set Method的精髓在于定义signed distance function, 并且使得:

la

这样简化之后,计算量少多了。并且更加容易编程。但是有一个问题,就是计算的过程中*式可能会不等于1,这就需要有一个重新初始化的工作。(我还在研究中。。)

下面是一个小例子,应用mean curvature变形,从t=0时刻开始演变。

20091221195906500 

先写到这里,不断学习中。

0387954821_01_LZZZZZZZ

Author:

Stanley Osher : 数学家,相当牛,UCLA

Ronald Fedkiw : Stanford的计算机系搞图形的,很强大很强大,各种膜拜

原文地址:https://www.cnblogs.com/antai/p/1629257.html