<<PREVIOUS  TABLE OF CONTENTS  CONTINUE >>
RAYCASTING STEP 5: DRAWING WALLS
In the previous steps, 320 rays are casts, when each ray hits a wall, the distance to that wall is computed. Knowing the distance, the wall slice can then be projected onto the projection plane. To do this, the height of the projected wall slice need to be found. It turns out that this can be done with a simple formula:
Actual Slice Height Projected Slice Height=  * Distance to Projection Plane Distance to the Slice
The logic behind this formula is explained in the Figure 20 below.
Figure 20: The math behind wall scaling.
Projected Slice Height = 64 / Distance to the Slice * 277
In an actual implementation, several things can be considered:

For instance, 64/277 can be precomputed, since this will be a constant value. Once this is calculated, the wall slice can be drawn on the screen. This can be done by simply drawing a vertical line on the corresponding column on the projection plane (screen).

Remember where the number 277 came from? This number can actually be deviated a bit without causing any huge impact. In fact, it will save time to use the value of 255 because the programmer can use shift operator to save computing time (shift right by 3 to multiply, shift left to divide).
For example, suppose the ray at column 200 hits a wall slice at distance of 330 units. The projection of the slice will be 64 / 330 * 277 = 54 (rounded up).
Since the center of the projection plane is defined to be at 100. The middle of the wall slice should appear at this point. Hence, the top position where the wall slice should be drawn is 10027=73. (where 27 is one half of 54). Finally, the projection of the slice will look something like the next figure.
Figure 21: A partly rendered view.
DEMO WITH SOURCE CODE: https://permadi.com/tutorial/raycast/demo/1/