我正在开发一款Android游戏,并且希望实现2D网格以可视化重力对运动场的影响。我想根据我的运动场上的各种物体使网格变形。我正在寻找的效果类似于处理库中的以下内容:
除了我的网格将更简单-2D,并严格从顶部看,就像往下看。
有人可以指出我绘制这种网格的算法吗?
我想到的一个想法是,将线像是“粒子”一样绘制-从屏幕的一端开始,并在多个段中绘制线,将每个段视为一个粒子,计算每个段的重力影响段的位置。
该应用程序旨在在Android上运行。
谢谢
最佳答案
正如您提到的,我将每条线绘制为单独的线段。如果网格稀疏,则可能是最快的。
如果从上方查看网格,则需要计算x
和y
坐标位移。最简单的方法是实际沿z
轴进行位移,然后使用x_result = x/z
和y_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/