质点弹簧模型
来源:互联网 发布:薛之谦淘宝店网址 编辑:程序博客网 时间:2024/04/28 14:48
随着计算机的发展,虚拟现实技术越来越受到大家重视。无论是医疗领域还是游戏领域,大家都在尽力研究,让自己在计算机内模拟的物体不断逼进真实。而在模拟现实物体的过程中,大家最为关注的是弹性物体的模拟。弹性物体的模拟有一种模型被广泛采纳,这就是质点弹簧模型。这种模型因为他本身的简单、快捷而受到许多研究者的青睐。但是这种模型的仿真度却始终存在一定的问题。本文就是对质点弹簧模型做一个初步的介绍。
首先,什么是质点弹簧模型。现在在各种说法中比较难找到较为权威的作为定义。我自己总结了一下,质点弹簧模型,即将物体的质量离散到一个个质点,质点之间再用弹簧连接来表现物体弹力、阻尼力等物理特性的模型。
为了不断提升仿真度,研究者在这一简单模型的基础上做了许多改进,单单是连接质点的弹簧就有三大类。
第一种是结构性弹簧,这种弹簧用于连接横向和纵向的质点,起到固定模型结构的作用。第二种是扭曲弹簧,也叫剪切弹簧,连接对角线上的相邻质点,起到防止模型扭曲变形的作用。第三种是拉伸性弹簧,也叫弯曲弹簧连接横向和纵向相隔着一个质点的两个质点,保证模型形变时的边缘圆滑(比如布料折叠)。
接下来简单介绍一下弹簧模型最常讨论的两种力:阻尼力和弹力。
阻尼力的概念其实是用于描述物体弹性形变的滞后性。这里可以类比电学中反应时间的概念来理解。弹性物体在受到外力作用发生弹性形变时有时并不会瞬间达到形变形状。而是渐渐形变至最后状态。为了描述这样一个过程就引入了阻尼力的概念。
那么弹簧模型又要怎样描述阻尼力呢?阻尼力必须满足随着时间逐渐递减至0的条件。接下来介绍其中一种方法。
设kd为阻尼系数,则Fd = kd * v (kd为阻尼系数, v为振子速度)。阻尼力的大小与速度大小成正比,同时方向与速度方向成反比。
振子速度的概念其实我也不太清晰,但网上有研究者是写作弹簧内两点位置之差和速度之差的内积。也因此,这公式可以进一步写为
Fd = D(DeltaP, DeltaV) * kd (D为向量的内积运算,DeltaP 为弹簧两端位置之差, DeltaV弹簧两端速度之差)
而弹力的描述可以根据我们十分熟悉的 Fk = k * x来描述 (x为弹簧现长与弹簧原长之差)。
综上,整个弹簧模型的弹力和阻尼力就可描述为 F= -(Fd + Fk)。
这只是初步的模型。为了进一步提高仿真度,各路学者在这个模型上改进了很多。比如,体弹簧的引入,虚拟绳的添加,弹性系数、阻尼系数的分段求解等。可以根据各种实际情况,改良模型,使其达到更为逼真的效果也是质点弹簧模型的优点之一。
- 浅谈质点弹簧模型
- 质点弹簧模型
- [图形学] 布料仿真(质点弹簧模型)
- 基于质点-弹簧模型的布模拟方法
- 【游戏课】技术片段之——弹簧质点模型与布料动画
- OpenGL进阶(十五) - 弹簧质点系统(Mass Spring Systems)
- 一维二阶弹簧模型
- Matlab-质点的运动
- 弹簧算法
- 弹簧动画
- CSS3 弹簧
- 弹簧板
- html5--质点运动与反射
- matlab中多个质点的仿真
- 06.2.28弹簧
- 疯狂的弹簧
- JavaScript 弹簧效果
- JavaScript 弹簧效果
- Matlab作图及图形格式设置
- 【Spring】Spring MVC原理及配置详解
- Linux_01 VMware Workstation+ Xmanager简单操作
- Java中this和super的用法总结
- hibernate实现多租户
- 质点弹簧模型
- X86 LEA指令详解
- 将身份证中取出的生日赋值到TcxDateEdit空间上
- 解决textarea有换行时的数据存库及赋值问题
- 带你了解大型网站技术架构方案(概述)
- Mapped Statements collection does not contain value for com.snfc.test.innerbank.Custmapper.delete
- 35. Struts2_国际化&通过超链接动态加载国际化资源文件
- H3C常用命令-1
- Hibernate连接mycat实现多租户