位置: 编程技术 - 正文

Bullet有关六自由度弹性约束研究(六个自由)

编辑:rootadmin
Bullet有关六自由度弹性约束研究

推荐整理分享Bullet有关六自由度弹性约束研究(六个自由),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:六个自由度英文,六自由度stewart平台,六种自由是什么,六个自由度英文,六自由度stewart平台,六个自由,六个自由,六种自由是什么,内容如对您有帮助,希望把文章链接给更多的朋友!

这段时间打算将物理引擎整合进来,于是对Bullet这款开源的物理引擎进行了一些研究。Bullet的研究也有了一段时间了,Bullet这个引擎其实很久之前就接触了,只是一直以来,只是跑跑它的例子,也没有研究例子以及源代码,想要整合进入渲染引擎中也就井中月水中花了。今年3月,我曾经制作了一个整合Bullet最简单的一个例子。即模拟物体坠落的,并且写了博客《QtQuick &#; OpenGL &#; Bullet初次测试》。这个例子开了一个好头。这段时间开始研究Bullet的一些其它有趣儿的特性了。

Bullet的约束(也称关节),是一个非常有意思的部分,因为它表示了两个碰撞物体之间的物理关系。比如说如果两个珠子是由一根绳子串起来的,那么绳子就代表了两个珠子之间的约束,当然你可以将绳子换成一根橡皮筋或者一根弹簧,它们都代表了不同的约束。这些约束,都有它们的名称,我最近在研究的就是六自由度弹性约束。

研究一个引擎最好的方法就是研究它的例子。对于Bullet也是如此。在Bullet自带的ConstraintDemo中,我看到了由一些非常有意思的约束组织而成的场景。因此从这个地方入手还不错。例子的截图如下:

你可以使用鼠标右键发射方块,来测试一下约束对于这些物体有什么作用。

这个场景包含了多种约束,每一种约束的处理方法都包含了相应的力学公式以及它的加成。我这回只对六自由度弹性约束进行研究,因此将其单独拉了出来。

六自由度弹性约束是一种约束,顾名思义,它可以作六个维度的旋转,并且在平移方面可以保持一定的弹性。上图中的右上角中黄色和蓝色方块形成的就是一个六自由度弹性约束。这个场景将Bullet的约束都显示出来了,让大家都可以了解,约束究竟能够怎样地影响物体。

六自由度弹性约束它具有一下的属性,它们分别如下:

英文名

中文名

RigidBodyA

此约束作用的刚体A

RigidBodyB

此约束作用的刚体B

frameInA

从刚体A到此约束的变换

frameInB

从刚体B到此约束的变换

LinearUpperLimit

平移(线性)最高的限制

LinearLowerLimit

Bullet有关六自由度弹性约束研究(六个自由)

平移(线性)最低的限制

AngularUpperLimit

旋转(角)最高的限制

AngularLowerLimit

旋转(角)最低的限制

Spring

弹簧效果

Stiffness

弹簧的刚性(劲度)

Damping

弹簧的衰减

我们将默认的例子效果修改一下,设计成我们想要的带有弹簧的效果:

将这些代码替换掉ConstraintDemo.cpp的到行,然后重新查看效果。发现约束改变了,如下图:

黄色的方块变成一个在六个自由度中都只有-°到°的约束。尝试用方块碰撞它,发现会绕着约束进行旋转。

接下来就是模仿的过程了,话说我要亲自尝试一下在Qt Quick &#; OpenGL下跑Bullet中约束的例子,因此在前期做了很多的工作,初始化相关的类就花费了很多的精力,由于代码篇幅较长,这里只贴出重要的部分:

这里创建的是一个简单的场景:只有一个六自由度弹性约束,两个刚体,还有一个质量非常大的物体,通过点击按钮来启用物理引擎,这样物体会通过做自由落体运动来将重力势能转化为动能,冲击这个刚体。由于设置了旋转弹性因子,因此处于约束另一方的刚体很自然地通过旋转避开了质量大的物体,最终该物体被弹出……

翻开源码,究竟弹性是怎么实现的呢?原来这用到了一个经典的公式:胡克定律。胡克定律的公式是F= k·x,其中k是物体的劲度系数,这里对应的也就是stiffness。看来要了解Bullet这个库的原理,还要我们复习很多物理知识呢。

FTGL库剖析之二----纹理文字 纹理文字是一种常用的在opengl下显示文字的方式,其过程大体说来就是将文字的位图数据作为纹理(仅使用alpha通道),贴到一个四边形,并且,纹理映

对用OpenGL ES 2.0实现OpenGL ES 1.1的顶点着色器的研究 对用OpenGLES2.0实现OpenGLES1.1的顶点着色器的研究想要彻底研究OpenGLES2.0与前一代OpenGL的区别,还是要费很大一番精力的。最近在仔细研读《OpenGLES2.0Programmi

OpenGL--贝塞尔曲线或曲面 理论基础贝塞尔曲线和曲面:OpenGL只能直接绘制基本图元,对于曲线和曲面我们一般采用一系列线段或多边形来模拟的,这样当线段或多边形增多时必

标签: 六个自由

本文链接地址:https://www.jiuchutong.com/biancheng/369488.html 转载请保留说明!

上一篇:OPENGL矩阵变换(opengl画矩形函数)

下一篇:FTGL库剖析之二----纹理文字(ftql)

  • 工资超出5000怎么样纳税
  • 金税四期有什么优势
  • 未达起征点的增值税怎么账务处理
  • 过桥过路费为什么这么贵
  • 小规模核定征收需要做账吗
  • 差额发票的税额怎么计算
  • 税费误差财务怎么调整
  • 视同销售计入销售费用能税前扣除吗
  • 虚报亏损的税务处理办法
  • 产品成本核算方法体系的内容包括
  • 购销行为的帐务处理如何做?
  • 买赠销售方式的税务筹划
  • 团队接待的程序及标准
  • 订金退回怎么做账
  • 医院计提坏账准备分录
  • 职工食堂的费用怎么入账
  • 营改增后还有建筑业发票吗
  • 代账公司收取服务费能开增值税票吗?
  • 福利费抵扣了进项税有2年了怎么办
  • 个体户网上报税流程视频
  • 企业可以采用在产品按固定成本计算法的有
  • 员工个税需要计提吗现在
  • 以前年度多计提的附加税怎么调账
  • 动产抵押交付生效还是登记生效
  • 一般纳税人增值税申报表怎么填写
  • 赠与合同公证收费标准
  • win10怎么推送win11
  • win11电脑怎么重置
  • PHP:pg_fetch_result()的用法_PostgreSQL函数
  • 核定征收的小规模纳税人要做账吗
  • 建筑公司结算会计
  • 资产负债表的编制方法和步骤
  • 皮丘拉湖畔的乌代布尔城市宫殿,印度 (© Chaiyun Damkaew/Getty Images)
  • 前端控制台
  • 事业单位小规模纳税人缴纳附加税有什么,税率是多少
  • 小微企业认定标准时间
  • vue模块拖拽
  • phpcms插件
  • 织梦cms怎么样
  • js数组entries
  • 织梦使用教程
  • dedecms 授权
  • 三方转账协议各方怎么记账
  • 工会经费发放奖励个税处理
  • 子公司和分公司的区别
  • 科技型中小企业享受优惠税收政策
  • Linux编译mssql扩展使用php连接sqlserver2008的使用步骤
  • mssql备份数据库
  • 收到返款计入什么科目
  • 收到违约金如何做账
  • 物业公司转售电费增值税
  • 房地产企业销售现房是否预缴增值税
  • 跨年的个人所得税可以更正吗
  • 工程外管核销报告范本
  • 小规模纳税人购入货物收到增值税专用发票
  • 一般纳税人劳务费税率是多少2023
  • 开发成本六大类
  • 开始建账需要哪些数据
  • mysql远程访问不了
  • windows的实验步骤
  • 桌面右边
  • win8打开运行的快捷键是什么
  • muamgr.exe - muamgr是什么进程 有何作用
  • Win10桌面任务栏能不能删除
  • win10d盘无法格式化,说另一个正在使用
  • win10界面虚化模糊
  • linux分区顺序详解
  • win7软件包
  • 批处理替换文件中的某个内容
  • 视觉观点
  • 如何解决eclipse非正常关闭重打开编译代码
  • jquery怎么设置宽度
  • shell脚本的实现
  • js原生dialog
  • 如何分析源码
  • unity3d unreal
  • 四川国税发票真伪查询
  • 个人出租商铺要交土地使用税吗
  • 北京车位过户手续费多少
  • 现行会计法律法规汇编2022版
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设