【Unity3d游戏开发】Unity3D中常用的物理学公式
马三最近在一直负责Unity中的物理引擎这一块,众所周知,Unity内置了NVIDIA公司PhysX物理引擎。然而,马三一直觉得只会使用引擎而不去了解原理的程序猿不是一位老司机。所以对一些常用的物理学公式我们还是要了解一下的。下面就是Unity开发中常用的一些物理学公式。
一、直线运动
1.匀变速直线运动
1.平均速度V=s/t(定义式)
2.有用推论Vt^2-Vo^2=2as
3.中间时刻速度Vt/2=V平=(Vt+Vo)/2
4.末速度Vt=Vo+at
5.中间位置速度Vs/2=[(Vo^2+Vt^2)/2]1/2
6.位移s=V平t=Vot+at*t/2=Vt/2t
7.加速度a=(Vt-Vo)/t{以Vo为正方向,a与Vo同向(加速)a>0;反向则a<0}
8.实验用推论Δs=aT^2{Δs为连续相邻相等时间(T)内位移之差}
9.主要物理量及单位:初速度(Vo):m/s;加速度(a):m/s*s;末速度(Vt):m/s;时间(t)秒(s);位移(s):米(m);路程:米;速度单位换算:1m/s=3.6km/h。
HINT:
(1)平均速度是矢量;
(2)物体速度大,加速度不一定大;
(3)a=(Vt-Vo)/t只是量度式,不是决定式;
2.自由落体运动
1.初速度Vo=0?
2.末速度Vt=gt
3.下落高度h=gt*t/2(从Vo位置向下计算)
4.推论Vt^2=2gh
HINT:
(1)自由落体运动是初速度为零的匀加速直线运动,遵循匀变速直线运动规律;
(2)a=g=9.8m/s*s≈10m/s*s(重力加速度在赤道附近较小,在高山处比平地小,方向竖直向下)。
3.竖直上抛运动
1.位移s=Vot-gt*t/2
2.末速度Vt=Vo-gt(g=9.8m/s*s≈10m/s*s)
3.有用推论Vt^2-Vo^2=-2gs
4.上升最大高度Hm=Vo*Vo/2g(抛出点算起)
5.往返时间t=2Vo/g(从抛出落回原位置的时间)
HINT:
(1)全过程处理:是匀减速直线运动,以向上为正方向,加速度取负值;
(2)分段处理:向上为匀减速直线运动,向下为自由落体运动,具有对称性;
(3)上升与下落过程具有对称性,如在同点速度等值反向等。
二、曲线运动、万有引力
1.平抛运动
1.水平方向速度:Vx=Vo
2.竖直方向速度:Vy=gt
3.水平方向位移:x=Vot
4.竖直方向位移:y=gt*t/2
5.运动时间t=(2y/g)1/2(通常又表示为(2h/g)1/2)
6.合速度Vt=(Vx*Vx+Vy*Vy)1/2=[Vo*Vo+(gt)*(gt)]1/2 合速度方向与水平夹角β:tgβ=Vy/Vx=gt/V0
7.合位移:s=(x*x+y*y)1/2,位移方向与水平夹角α:tgα=y/x=gt/2Vo
8.水平方向加速度:ax=0;竖直方向加速度:ay=g
HINT:
(1)平抛运动是匀变速曲线运动,加速度为g,通常可看作是水平方向的匀速直线运与竖直方向的自由落体运动的合成;
(2)运动时间由下落高度h(y)决定与水平抛出速度无关;
(3)θ与β的关系为tgβ=2tgα;
(4)在平抛运动中时间t是解题关键;(5)做曲线运动的物体必有加速度,当速度方向与所受合力(加速度)方向不在同一直线上时,物体做曲线运动。
2.匀速圆周运动
1.线速度V=s/t=2πr/T
2.角速度ω=Φ/t=2π/T=2πf
3.向心加速度a=V2/r=ω2r=(2π/T)2r
4.向心力F心=mV2/r=mω2r=mr(2π/T)2=mωv=F合
5.周期与频率:T=1/f
6.角速度与线速度的关系:V=ωr
7.角速度与转速的关系ω=2πn(此处频率与转速意义相同)
8.主要物理量及单位:弧长(s):米(m);角度(Φ):弧度(rad);频率(f):赫(Hz);周期(T):秒(s);转速(n):r/s;半径(r):米(m);线速度(V):m/s;角速度(ω):rad/s;向心加速度:m/s*s。
HINT:
(1)向心力可以由某个具体力提供,也可以由合力提供,还可以由分力提供,方向始终与速度方向垂直,指向圆心;
(2)做匀速圆周运动的物体,其向心力等于合力,并且向心力只改变速度的方向,不改变速度的大小,因此物体的动能保持不变,向心力不做功,但动量不断改变。
3.万有引力
1.开普勒第三定律:T2/R3=K(=4π2/GM){R:轨道半径,T:周期,K:常量(与行星质量无关,取决于中心天体的质量)}
2.万有引力定律:F=Gm1m2/r2(G=6.67×10-11Nm2/kg2,方向在它们的连线上)
3.天体上的重力和重力加速度:GMm/R2=mg;g=GM/R2{R:天体半径(m),M:天体质量(kg)}
4.卫星绕行速度、角速度、周期:V=(GM/r)1/2;ω=(GM/r3)1/2;T=2π(r3/GM)1/2{M:中心天体质量}
5.第一(二、三)宇宙速度V1=(g地r地)1/2=(GM/r地)1/2=7.9km/s;V2=11.2km/s;V3=16.7km/s
6.地球同步卫星GMm/(r地+h)2=m4π2(r地+h)/T2{h≈36000km,h:距地球表面的高度,r地:地球的半径}
HINT:
(1)天体运动所需的向心力由万有引力提供,F向=F万;
(2)应用万有引力定律可估算天体的质量密度等;
(3)地球同步卫星只能运行于赤道上空,运行周期和地球自转周期相同;
(4)卫星轨道半径变小时,势能变小、动能变大、速度变大、周期变小(一同三反);
(5)地球卫星的最大环绕速度和最小发射速度均为7.9km/s。
4.马格努斯效应
由于角速度矢量 和速度矢量 的对象,产生的力 可使用下列公式计算:
其中,S是由整个物体表面决定的空气阻力平均系数。"X"表示向量的交叉乘积。
HINT:
下面的公式演示了一个球是沿着旋转轴垂直方向的平移运动旋转的诱导升力:
F = 升力lift force
ρ =流体的密度
v = 球的速度
A = 球的横截面积
CL = 升力系数
升力系数CL可以从使用雷诺数和旋转比率的实验数据图表确定。与光滑的球旋转的比例为0.5到4.5,典型的升力系数的范围从0.2至0.6.
三、力(常见的力、力的合成与分解)
1.常见的力
1.重力G=mg(方向竖直向下,g=9.8m/s*s≈10m/s*s,作用点在重心,适用于地球表面附近)
2.胡克定律F=kx{方向沿恢复形变方向,k:劲度系数(N/m),x:形变量(m)}
3.滑动摩擦力F=μFN{与物体相对运动方向相反,μ:摩擦因数,FN:正压力(N)}
4.静摩擦力0≤f静≤fm(与物体相对运动趋势方向相反,fm为最大静摩擦力)
5.万有引力F=Gm1m2/r2(G=6.67×10-11Nm2/kg2,方向在它们的连线上)
HINT:
(1)劲度系数k由弹簧自身决定;
(2)摩擦因数μ与压力大小及接触面积大小无关,由接触面材料特性与表面状况等决定;
(3)fm略大于μFN,一般视为fm≈μFN;
2.力的合成与分解
1.同一直线上力的合成同向:F=F1+F2,反向:F=F1-F2(F1>F2)
2.互成角度力的合成:
F=(F12+F22+2F1F2cosα)1/2(余弦定理)F1⊥F2时:F=(F12+F22)1/2
3.合力大小范围:|F1-F2|≤F≤|F1+F2|
4.力的正交分解:Fx=Fcosβ,Fy=Fsinβ(β为合力与x轴之间的夹角tgβ=Fy/Fx)
HINT:
(1)力(矢量)的合成与分解遵循平行四边形定则;
(2)合力与分力的关系是等效替代关系,可用合力替代分力的共同作用,反之也成立;
(3)除公式法外,也可用作图法求解,此时要选择标度,严格作图;
(4)F1与F2的值一定时,F1与F2的夹角(α角)越大,合力越小;
(5)同一直线上力的合成,可沿直线取正方向,用正负号表示力的方向,化简为代数运算。
四、动力学(运动和力)
1.牛顿第一运动定律(惯性定律):物体具有惯性,总保持匀速直线运动状态或静止状态,直到有外力迫使它改变这种状态为止
2.牛顿第二运动定律:F合=ma或a=F合/ma{由合外力决定,与合外力方向一致}
3.牛顿第三运动定律:F=-F′{负号表示方向相反,F、F′各自作用在对方,平衡力与作用力反作用力区别,实际应用:反冲运动}
4.共点力的平衡F合=0,推广{正交分解法、三力汇交原理}
5.超重:FN>G,失重:FN<G{加速度方向向下,均失重,加速度方向向上,均超重}
6.牛顿运动定律的适用条件:适用于解决低速运动[color=rgb(85, 85, 85) !important]问题,适用于宏观物体,不适用于处理高速问题,不适用于微观粒子
HINT:
平衡状态是指物体处于静止或匀速直线状态,或者是匀速转动。
五、振动和波(机械振动与机械振动的传播)
1.简谐振动F=-kx{F:回复力,k:比例系数,x:位移,负号表示F的方向与x始终反向}
2.单摆周期T=2π(l/g)1/2{l:摆长(m),g:当地重力加速度值,成立条件:摆角θ<100;l>>r}
六、冲量与动量(物体的受力与动量的变化)
1.动量:p=mv{p:动量(kg/s),m:质量(kg),v:速度(m/s),方向与速度方向相同}
3.冲量:I=Ft{I:冲量(Ns),F:恒力(N),t:力的作用时间(s),方向由F决定}
4.动量定理:I=Δp或Ft=mvt–mvo{Δp:动量变化Δp=mvt–mvo,是矢量式}
5.动量守恒定律:p前总=p后总或p=p’′也可以是m1v1+m2v2=m1v1′+m2v2′
6.弹性碰撞:Δp=0;ΔEk=0{即系统的动量和动能均守恒}
7.非弹性碰撞Δp=0;0<ΔEK<ΔEKm{ΔEK:损失的动能,EKm:损失的最大动能}
8.完全非弹性碰撞Δp=0;ΔEK=ΔEKm{碰后连在一起成一整体}
9.物体m1以v1初速度与静止的物体m2发生弹性正碰:
v1′=(m1-m2)v1/(m1+m2)v2′=2m1v1/(m1+m2)
10.由9得的推论—–等质量弹性正碰时二者交换速度(动能守恒、动量守恒)
11.子弹m水平速度vo射入静止置于水平光滑地面的长木块M,并嵌入其中一起运动时的机械能损失E损=mVo*Vo/2-(M+m)Vt*Vt/2=fs相对{vt:共同速度,f:阻力,s相对子弹相对长木块的位移。
作者:马三小伙儿
出处:http://www.cnblogs.com/msxh/p/6128851.html
请尊重别人的劳动成果,让分享成为一种美德,欢迎转载。另外,文章在表述和代码方面如有不妥之处,欢迎批评指正。留下你的脚印,欢迎评论!
【Unity3d游戏开发】Unity3D中常用的物理学公式的更多相关文章
- 从零开始Unity3D游戏开发【1 常用快捷键】
Unity3D近两年起来的很快.自己对游戏一直很有兴趣,所以想找机会转游戏开发.目的之一是赚钱,目的之二是完成自己的小梦想. Unity3D的人才还是紧缺的,招聘网站上各个公司真敢拿着钱砸.让.NET ...
- 【Unity3D游戏开发】之常用代码 (十二)
//创建一个名为"Player"的游戏物体 //并给他添加刚体和立方体碰撞器. player=new GameObject("Player"); player. ...
- [Unity3D]Unity3D游戏开发3D选择场景中的对象,并显示轮廓效果强化版
大家好,我是秦培,欢迎关注我的博客,我的博客地址blog.csdn.net/qinyuanpei. 在上一篇文章中,我们通过自己定义着色器实现了一个简单的在3D游戏中选取.显示物体轮廓的实例. 在文章 ...
- Unity3D游戏开发初探—2.初步了解3D模型基础
一.什么是3D模型? 1.1 3D模型概述 简而言之,3D模型就是三维的.立体的模型,D是英文Dimensions的缩写. 3D模型也可以说是用3Ds MAX建造的立体模型,包括各种建筑.人物.植被. ...
- 投影方式- Unity3D游戏开发培训
投影方式- Unity3D游戏开发培训 作者:Jesai 2018-02-12 20:33:13 摘 要 透视投影是3D渲染的基本概念,也是3D程序设计的基础.掌握透视投影的原理对于深入理解其他 ...
- 内置3D对象-Unity3D游戏开发培训
内置3D对象-Unity3D游戏开发培训 作者:Jesai 2018-02-12 19:21:58 五大面板: -Hierachy:当前场景中的物体 图 1-1 -Project:项目中的所有资源 图 ...
- 从一点儿不会开始——Unity3D游戏开发学习(一)
一些废话 我是一个windows phone.windows 8的忠实粉丝,也是一个开发者,开发数个windows phone应用和两个windows 8应用.对开发游戏一直抱有强烈兴趣和愿望,但奈何 ...
- Unity3D游戏开发之连续滚动背景
Unity3D游戏开发之连续滚动背景 原文 http://blog.csdn.net/qinyuanpei/article/details/22983421 在诸如天天跑酷等2D游戏中,因为游戏须要 ...
- Unity3D游戏开发从零单排(四) - 制作一个iOS游戏
提要 此篇是一个国外教程的翻译,尽管有点老,可是适合新手入门. 自己去写代码.debug,布置场景,能够收获到非常多.游戏邦上已经有前面两部分的译文,这里翻译的是游戏的最后一个部分. 欢迎回来 在第一 ...
随机推荐
- SDL 显示解码后的yuv12数据
在上篇h264解码为yuv12后http://jhlong12345.blog.163.com/blog/static/1230631292015725115058709/ ,需要显示出来,使用sdl ...
- 硕士研究生入学考试复试试卷答案.tex
%该模板用于数学答题 \documentclass[UTF8]{ctexart}%[中文编码 UTF8] \usepackage{fancyhdr}%{页眉页脚页码} \pagestyle{fancy ...
- ecshop后台 计划任务
计划任务定时清理掉设置后的内容 主要针对单表删除(日志,):对于多表删除,不太好用(订单+订单商品+订单日志) 结构: 1.计划任务语言包:languages\zh_cn\cron\ 2.php文件: ...
- URL、URN、URI的区别?
URL.URN.URI区别 既然Web应用程序的文件等资源是放在服务器上,而服务器是因特网(Internet)上的主机,当然必须要有个方法,告诉浏览器到哪里取得文件等资源.通常会听到有人这么说:“你要 ...
- PHP 的异常处理、错误处理:error_reporting,try-catch,trigger_error,set_error_handler,set_exception_handler,register_shutdown_function
一.错误.异常 等级常量表 error:不能在编译期发现的运行期错误,比如试图用 echo 输出一个未赋值的变量,这类问题往往导致程序或逻辑无法继续下去而需要中断: exception:程序执行过程中 ...
- jQuery-H5-css3转盘抽奖-遁地龙卷风
(-1)写在前面 这个idea不是我的,首先向这位前辈致敬. 我用的是chrome49, jquery3.0. 完整的程序案例在我的百度云盘http://pan.baidu.com/s/1jI2QSn ...
- linux各目录的作用
- 跟着百度学PHP[5]函数篇1-参数
ps:俺的文章俺懂就行.大家不要拿来学习不然每个人的学习思路不一样.看视屏文章的老师不同笔记不同加上我也是新手上路,还怕误导!请大家看行且思考,帮忙挖Bug也可以. 案例要求:你可以写一个两行三列的表 ...
- PHP 变量声明的意义
有人说,PHP是没有类型的语言,个人比较倾向于,PHP是弱类型的计算机脚本语言的说法. 计算机存储都是二进制的数据,要么是0,要么是1. 在抽象数据的过程中,是要有各种各样的标志位来识别数据. 虽然, ...
- MVC学习笔记
7 天玩转 ASP.NET MVC 阅读笔记 1.Web Form的问题 1.响应慢,web控件转化成html需要时间 2.带宽消耗,页面保存web控件的状态(viewstate) 3.由web控件生 ...