Imagine you are in a tunnel which is a perfect cylinder placed horizontally. The tunnel is formed by an infinite number of segments with same girth (4 meters diameter) and a fixed length of 20 meters. Your point of view is in the center of the cylinder section. You are travelling through the tunnel with a constant speed, 5 m/s. In between the segments there's a distinctive groove that is visible to you, lying in a plane that is perpendicular to your viewing direction vector, your travelling direction vector and the tunnel wall.
The only way that you can perceive the act of travelling through the tunnel is by observing the grooves in between the segments, that form concentric circles that are constantly growing in diameter until they surpass your viewing area.
I need to represent this motion on a 2D medium, the screen.
What I fail to accomplish is applying the correct "speed" to the circles. I feel that the best approach is to consider that: the closer the circles get, the faster they should grow in diameter. I am trying to find a function that would work well in the range [0;1] since I'm providing a ratio where 1 is the farthest possible position for the circle to be visible and 0 is the camera position. I guess function range doesn't matter since it can be adapted to [0;1] and it only needs to work for positive values.
I don't require a mathematically accurate solution I simply require something close enough to the look and feel of a moving tunnel. I tried applying y=x*x*x*x; but the curve of the function is too early (somewhere around x=0.5). I need something that would be almost linear in the range [0;0.5] and with a significant curve in the range (0.5,1].
Thanks to anyone who took the time to go through this.