我制作了一个带有正方形的球体(用方块填充)。为此我带了3个乐队,每个乐队由8个点组成。总共24分。现在我必须在与墙壁碰撞时使球体变形。为此,我将所有点存储在树数据结构中。现在我将在球转换时遍历树,并将增加点的坐标(例如,1个单位)。当碰撞点与树中的任何节点匹配时,则检测到碰撞。但是为了使球体变形,我需要检查其8个邻居并找出已经压缩了多少区域。但是如何找到球体中的点将减少(压缩)的距离以及相邻点将被压缩多少。我怎么知道节点中的哪些点被认为是他们的邻居?我认为邻居应该是碰撞节点的孩子。但是如何找到压缩的区域?那个地区有什么意义?一个节点在我的树中有多少个孩子?请给我一些数学公式或程序来做这件事。
答案 0 :(得分:1)
希望你写的是关于固体材料......
您需要了解此背后的数学/物理背景
你需要知道积分和向量数学,所以谷歌的材料力学类似于this ...首先用我的语言命中。对不起,我没有信心用英语进行搜索,但是如果你找到类似图纸的材料......
您需要寻找的最重要的事情是:
可能是sphere-oid的Surface / Voxel地图将是一个更简单的选择
至少在计算过程中,您可以通过曲面点树打包/解包。您将需要表面法线并通过其切片整合球体
您需要编译所需的所有数据
将每个时间帧处理为静态。计算实际接触力(将实际动能转换为反作用力),然后计算接触切片的新形状。将变形分布添加到非接触切片。消除动能产生的能量耗散并在下一个时间框架内完成
别忘了墙也会变形!!!所以接触区并不总是平坦的!
<强> [注释] 强>
很抱歉很长而不是确切的答案,但这不能通过简单的公式解决。你需要通过区域积分+滑动状态条件拟合
来做到这一点