我正在尝试编程我自己的物理(请不要使用box2d答案)并且我想要一个球在它接触的任何倾斜平面上滚动。我在物理方面有很多经验,但出于某种原因,我似乎无法在任何地方找到如何在编程中做到这一点。任何有关如何解决这个问题的帮助都非常感谢!
答案 0 :(得分:1)
几何思考!
首先,您需要确定球是否接触以及接触的是哪个平面。从直接指向向下的球位置创建一个向量。找到此向量相交的最近平面。这可以通过矢量数学来完成,例如,您在wiki中找到的基础知识:https://en.wikipedia.org/wiki/Line%E2%80%93plane_intersection
您现在知道了飞机,您可以计算球与平面交点之间的距离。如果距离<=球半径,则接触。从那里,计算平面坡度并相应地修改球运动矢量(到您的物理模型)。
答案 1 :(得分:1)
根据您提供的非常有限的信息,它看起来像是3D libgdx rotation的副本,您可以在https://gist.github.com/xoppa/3b841fb52f46e8cdec24找到一个示例