《游戏开发物理学(第2版)》一1.7 牛顿第二运动定律

F是物体受到的合力,m是物体的质量,a是物体重心所受到的线性加速度。将等式变形可以得到:

你可以看到物体的质量如何作为物体抵抗运动程度的度量。从中可以观察出:如果分母中的质量增长而所施加的力不变,物体所产生的加速度就会减小。因此可以说质量更大的物体抵抗运动的程度更大。相似的,当质量减小而施加的力不变时,物体所产生的加速度会增大,因此可以说质量小的物体抵抗运动的程度也更小。

牛顿第二定律同时也描述了力所产生的加速度与施加在物体上的力在同一方向。因此,力和加速度都必须作为向量来处理。总的来说,给定时刻作用于物体上的力可能不止一个。其合力应该是所有作用于物体上的力的向量和。由此可得:

其中a表示加速度向量。

在三维空间中,力的向量和加速度的向量在笛卡尔坐标系中都会有x、y、z分量。在这个等式中,运动的分量方程写成如下形式:

另一种牛顿第二定律的表达方式是:所有作用在物体上的力之和等于物体动量(momentum)随时间的变化率。也就是动量对时间的微分。动量等于质量乘以速度,而速度是个向量,所以动量也是个向量。因此有:

其中G是物体的线性动量,m是物体质量,v是物体重心的速度。动量随时间的变化率是动量对时间的微分:

假设物体质量不变(暂时),可以写出

观察到速度随时间的变化率dv/dt,即加速度,我们可以得出:

至此,我们只考虑了物体的位移,而没有考虑转动。在通常的三维运动中,你必须考虑物体的转动。因此,我们需要增加一些方程来更完整地描述物体的运动。特别地,你需要类比的方程来表示物体上所有力矩的总和(扭矩),即角动量随时间的变化率或角动量对时间的倒数。

其中 ∑Mcg是物体质心所有力矩的和,H是物体的角动量。Mcg可以表示为:

其中F是作用在物体上的力,r是F的距离向量,其方向与F的作用线垂直(例如与向量F垂直),大小为从F到物体的重心,×是向量积符号。

物体的角动量是物体上所有粒子相对于转动轴的动量之和。在本例中,我们假设转动轴过物体重心,则物体角动量可表示为:

其中i表示第i个组成物体的粒子,ω是物体相对于参考轴的角速度。(ri×mi(ω ×ri))是第i个粒子的角动量,其幅度为miω ri2,对于给定轴的转动,可以列出如下方程:

由于对刚体来说,所有组成物体的粒子具有相同的角速度,有:

又有转动惯量I等于 ∫r2 dm,因此我们得到:

对时间微分得:

dHcg/dt = d/dt(Iω)= I dω/dt = Iα

其中α是物体相对于给定轴的角加速度。最终,我们可以写出:

∑ Mcg=Iα

正如我们在转动惯量中所讨论的,我们需要进一步泛化我们的转动惯量方程和角动量方程,以期能够用来描述物体针对任意轴的转动。总的来说,M和α会是向量,而由于物体巨大的转动惯量可能依转动轴的不同而不同,I将会是张量(tensor)[2](见本节附加栏“张量”)。

张量

张量是一种具有大小和方向的数学表达式,但它的大小依方向而并不唯一。张量通常用于描述材料中有不同大小和不同方向的属性。属性随方向变化的材料被称为各向异性(anisotropic),各向同性(isotropic)意味着在所有方向上大小相同。例如:考虑两个普通材料的弹性(或强度),一张纸和一片织物。拿起这张纸并展平,分别从长边、宽边和对角线两端轻拉。你应该会感觉到纸的所有方向似乎强度相同,或者说被拉伸的程度相同。它是各项同性的,因此只需要一个常量就能表明它各个方向的强度。

现在,假设有一片拥有简单的,相对宽松的编织的布,它在两个方向上的线互相垂直,就像大多数领带那样。对这片布进行与上述纸张相同的拉伸实验,先沿织线方向,然后再沿对角线方向拉动布。你应该可以观察到布在被沿对角线方向拉动时被拉伸了,而在沿织线方向拉动时没有被拉伸。由于它根据拉力的方向不同表现出不同的弹性(或强度)的特性,所以说布是各向异性的。因此,需要用向量的集合(张量)来表示它各个方向的强度。

在这本书的背景下,所考虑的属性是物体的转动惯量,在3D空间中,需要9个分量完全描述它的任意转动。转动惯量不是在之前纸和布的例子中的强度属性,但它是随转动轴的物体的一个属性。由于表示它必须要有9个分量,转动惯量将以3×3的矩阵,即二阶(second-rank)张量的形式在本书后面出现。

关于坐标,我们在此必须要提到几个问题。当你编写实时仿真器时,这些问题就会变得很重要。两个运动方程到目前为止都是在全局坐标系中表示的,而不是由物体确定的坐标系。对于可以在全局坐标系中追踪物体位置和速度的运动的线性方程而言,这样是没问题的。
但是,从计算的观点而言,你并不会想对三维空间中转动物体的角运动方程也做同样的计算[13]。其原因是转动惯量以全局坐标计算时,随时会根据物体的位置和朝向改变。也就是说你需要在仿真中进行很多次转动惯量阵(和它的逆矩阵)的重新计算。这么做在计算上来说是非常低效率的。更好的方法是将这些运动方程在(随物体而变的)局部坐标系中重写,这样你就只需要计算一次转动惯量矩阵(和它的逆矩阵)。

在一般情况下,一个向量对时间的微分V,在一个固定的(非转动)坐标系中与它在转动坐标系中对时间的微分可以通过以下内容联系起来:

(ω×V)这一项就是在固定坐标系中V对时间的倒数与在转动的坐标系中V对时间微分的差。我们可以利用这一关系来重写在局部坐标系或对于物体固定的坐标系中的角运动方程。更进一步,考虑到这个向量其实是角动量向量Hcg。回想起Hcg = Iω和它对时间的倒数等于对于物体重心力矩的和。这些就是你用于得出角运动方程的所有拼图,接下来你就可以通过将倒数变形中的V替换为Hcg来得到如下方程:

其中力矩、惯性张量、角速度都在局部(物体)坐标系中表示。虽然这个方程看起来比前我们展示的略微复杂一些,但是由于I在你整个的仿真过程中会是一个常量(除非你的物体在仿真中由于什么原因改变了质量或者形状),新的方程会变得更加便于使用。在第15章中我们向你展示如何开发一个简单的3D刚体仿真器时,你会用到这个方程。

时间: 2024-09-30 06:50:41

《游戏开发物理学(第2版)》一1.7 牛顿第二运动定律的相关文章

《游戏开发物理学(第2版)》一导读

前 言 游戏开发物理学(第2版) 谁适合读这本书? 简单来说,这本书是专为那些没有扎实的物理或机械基础的游戏开发者编写的.特别是他们要在游戏中加入真实物理(real physics)时. 作为一个游戏开发者,很可能你自己也是个玩家,你通常会看到游戏产品标榜自己"超写实(ultra-realistic)",或者直接描述成"现实世界物理(real-world physics)".同时,你或者你的公司市场部想知道如何对你们的游戏进行测试才能获得这样逼真的效果.又或许你想要

《游戏开发物理学(第2版)》一第1章 基本概念

第1章 基本概念 游戏开发物理学(第2版)作为热身,本章会涵盖大部分在以后的章节中会使用到的基本原理.首先,我们会介绍牛顿运动定律,它对于学习力学来说非常重要.然后我们会讨论单位和度量,并在这里阐述单位在计算中的重要性.你也会看到将要学习的几种物理量的相关单位.在讨论过单位之后,我们会定义通用的坐标系统以作为标准的参考系.然后会讨论质量.质心和转动惯量的概念,并展示对于物体的集合或者组合来说,如何计算上述这些量.最后我们会非常详细地讨论牛顿第二运动定律,快速地了解一下向量,并且简要地讨论一下相对

《游戏开发物理学(第2版)》一第一部分 基础

第一部分 基础 游戏开发物理学(第2版)第一部分侧重于牛顿力学等运动学和动力学的基本主题.运动学处理物体的运动,我们将在其中讨论线性速度.角速度和加速度.动力学处理力和力产生的运动.第二部分以第一部分作为前提,涵盖了刚体动力学.已经精通经典力学的读者可以跳过第一部分而不影响阅读的连续性.

《游戏开发物理学(第2版)》一1.6 质量、质心和转动惯量

1.6 质量.质心和转动惯量 物体的属性--质量(mass).质心(center of mass)和转动惯量(moment of inertia),总体来讲被称为质量特性(mass properties)--对于研究力学来说是至关重要的,因为物体的线性运动.角运动及物体对于给定外力的响应都是质量特性的函数.因此,为了准确建模物体的运动,你需要知道或者有能力计算这些质量特性.让我们先看几个定义. 通常来讲,人们认为质量是用来衡量一个物体中含有物质的多少.从研究力学的角度来讲,也可以认为质量是用来衡

IOS游戏开发之五子棋OC版_IOS

先上效果图 - 功能展示 - 初高级棋盘切换效果 实现思路及主要代码详解 1.绘制棋盘 利用Quartz2D绘制棋盘.代码如下 - (void)drawBackground:(CGSize)size{ self.gridWidth = (size.width - 2 * kBoardSpace) / self.gridCount; //1.开启图像上下文 UIGraphicsBeginImageContext(size); //2.获取上下文 CGContextRef ctx = UIGraph

《游戏开发物理学(第2版)》一1.9 相对论时间

1.9 相对论时间 为了能够深入了解先进的航天器是如何工作的以及给你用来调节你游戏中时间的机制,我们会在此提供相对论的简介,特别是其对时间的影响.在我们的日常经验中,假设在我们写这篇文章时,你墙壁上的时钟和我墙壁上的钟以同样的速度嘀嗒作响是安全的.然而,大家知道阿尔伯特·爱因斯坦这个名字的原因是他有着放弃将时间作为一个常量的先见之明.与常识相反,他推断不论来自哪里的光都会以同样的速度来运行. 也就是说,如果你用手电筒照射真空,它所发出的可见光形式的电磁辐射将会以光速c(299792458 m/s

《游戏开发物理学(第2版)》一1.2 单位和度量

1.2 单位和度量 在多年不同的工程课程教授中,我们发现学生们经常犯的一个错误就是在计算的时候对一个量使用了错误的单位,因此无法保持单位的一致性,从而导致了一些很古怪的答案.举个例子,在船的性能领域,最常误用的就是速度的单位:人们经常会忘记把速度的单位从海里/小时转成米/秒(m/s)或者尺/秒(ft/s).1海里/小时等于0.514m/s,考虑到这个领域的许多量都和速度的平方成正比,这个错误会导致最终的结果偏离目标185%!所以如果以后你的结果看起来可疑的话,你需要做的第一件事情就是回过头来看看

《游戏开发物理学(第2版)》一1.3 坐标系

1.3 坐标系 在表示2D和3D空间中的点的时候,本书使用标准的右手(right-handed)笛卡尔坐标系统(Cartesian coordinate system).在二维中我们使用图1-1(a)所示的坐标系统,在这个系统中定义逆时针转动为正方向. 在三维中我们使用图1-1(b)中所示的坐标系统,在这个系统中x轴上转动的正方向是从正y到正z,y轴上转动的正方向是从正z到正x,z轴上的转动的正方向是从正x到正y.

《游戏开发物理学(第2版)》一1.5 微分和积分

1.5 微分和积分 即使你对微积分不熟悉,也不要让书中的微分和积分吓到你.在整本书中,当我们用微积分书写等式的时候,都会向你表明如何处理它们的运算.我们不会很深入地论述微分和积分所有的属性和应用,而只会触及它们的物理意义,因为这些与我们所要涵盖的材料有关. 你可以将微分想象成一个变量随另一个变量变化的速率,或者换种说法,微分告诉了你一个变量随另一个变量变化的有多快.以速度为例.一辆汽车以固定速度在固定时间内行驶过一段距离.它的平均速度是在特定时间间隔内行驶过的距离.如果它在一小时内行驶了60公里