开发者

algorithm for visualizing gravity distortion (2D)

开发者 https://www.devze.com 2023-02-20 02:09 出处:网络
I\'m working on an Android game and would like to implement a 2D grid to visualize the effects of gravity on the playing field.I\'d like to distort the grid based on various objects on my playing fiel

I'm working on an Android game and would like to implement a 2D grid to visualize the effects of gravity on the playing field. I'd like to distort the grid based on various objects on my playing field. The effect I'm looking for is similar to the following from the Processing library:

algorithm for visualizing gravity distortion (2D)

Except that my grid will be simpler- 2D, and viewed strictly from the开发者_如何学C top, as if looking down at the playfield.

Can someone point me to an algorithm for drawing such a grid?

The one idea that I came up with was to draw the lines as if they were "particles"- start at one end of the screen and draw the line in multiple segments, treating each segment as a particle, calculating the effect of gravity at each segment's location.

The application is intended to run on Android.

Thanks


I would draw each line as a separate segment, as you mentioned. If the grid is sparse, it might be fastest.

If you are viewing the grid from above, you would need to calculate x and y coordinate displacements. The easiest way would be to actually do displacement along the z axis and then fake perspective with x_result = x/z and y_result = y/z . You set z=1 and make sure to vary it only relatively slightly (+- 0.1 for instance).

Your z should be proportional to the sum of 1/(distance to the sphere)^2. This simulates how gravity works - it tapers off with square of the distance. Great news - square of the distance means to calculate delta_x^2 + delta_y^2 - so you save yourself that square root calculation == faster.

0

精彩评论

暂无评论...
验证码 换一张
取 消