正文

游戏数学(14)

精通C#游戏编程 作者:(英)斯库勒


测试圆或球与某个点是否相交十分简单,其实就是测试一个点是否在圆或者球内。以圆为例。圆通过圆心和半径定义。如果在[5,6]处有一个单位圆,要判断点[5.5,6.5]是否在该圆内,第一步是计算出该点与圆心的位置。这是通过对圆心的向量与该点的向量做减法得到的:[5, 6] - [5.5, 6.5] = [0.5, 0.5],减法的结果是从该点到圆心的一个向量。然后求出该向量的长度,也就是该点与圆的距离。计算得到的长度为0.707。如果这个长度小于圆的半径,那么点在圆内;如果长度大于圆的半径,则点在圆外。如果两者相等,则点在圆周上,如图8-12所示。

相同的方法也适用于球和点的相交性测试。这可以快速测试玩家是否在特定的位置,或者鼠标是否单击了特定的区域。如果不能想象出来,可以尝试在纸上绘制几个例子,直到自己熟悉了这种方法。此时,试着思考一下如何进行圆与圆或者球与球的相交性测试。


上一章目录下一章

Copyright © 读书网 www.dushu.com 2005-2020, All Rights Reserved.
鄂ICP备15019699号 鄂公网安备 42010302001612号