我正在开发一款Android游戏,并且希望实现2D网格以可视化重力对运动场的影响。我想根据我的运动场上的各种物体使网格变形。我正在寻找的效果类似于处理库中的以下内容:



除了我的网格将更简单-2D,并严格从顶部看,就像往下看。

有人可以指出我绘制这种网格的算法吗?

我想到的一个想法是,将线像是“粒子”一样绘制-从屏幕的一端开始,并在多个段中绘制线,将每个段视为一个粒子,计算每个段的重力影响段的位置。

该应用程序旨在在Android上运行。

谢谢

最佳答案

正如您提到的,我将每条线绘制为单独的线段。如果网格稀疏,则可能是最快的。

如果从上方查看网格,则需要计算xy坐标位移。最简单的方法是实际沿z轴进行位移,然后使用x_result = x/zy_result = y/z伪造透视图。设置z=1并确保仅对其进行相对较小的改变(例如+-0.1)。

您的z应该与1/(distance to the sphere)^2的和成比例。这模拟了重力的工作原理-它随着距离的平方逐渐减小。好消息-距离的平方意味着计算delta_x^2 + delta_y^2-因此,您可以节省计算平方根==的速度。

关于java - 可视化重力变形(2D)的算法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5439096/

10-11 15:18