Grid lines are the foundation of distance measurement. Each line represents a known meter mark on the hill. The viewer interpolates between lines to calculate the distance at any cursor position.
Each grid line is defined by two anchor points:
@far[feed][line]) — where the meter mark crosses the far edge of the landing hill (top of frame or vanishing point)@near[feed][line]) — where the meter mark crosses the near edge (bottom of frame, closer to camera)The viewer draws a line between these two points. Because of perspective, lines closer to the camera are spaced farther apart on screen.
The system uses linear interpolation in screen space between adjacent grid lines. For a cursor at vertical position Y between two lines at Y1 and Y2:
fraction = (Y - Y1) / (Y2 - Y1)
distance = meter1 + fraction * (meter2 - meter1)
This linear model is accurate when grid lines are close together (1-meter increments).
In settings.txt, configure the range for each feed:
# Feed 0 (top of hill camera): 80m to 99m
meter_line_count[0]=20
meter_line_start[0]=80
meter_line_increment[0]=1
meter_line_radius[0]=1
# Feed 1 (middle camera): 100m to 119m
meter_line_count[1]=20
meter_line_start[1]=100
meter_line_increment[1]=1
meter_line_radius[1]=1
# Feed 2 (bottom of hill camera): 120m to 139m
meter_line_count[2]=20
meter_line_start[2]=120
meter_line_increment[2]=1
meter_line_radius[2]=1
In the video, locate visible distance markers on the hill. You need at least two known points per feed, but calibrating every meter line gives the best accuracy.
For each visible meter mark, record the pixel coordinates where the mark intersects the far and near edges of the hill:
# Feed 0, line 0 = 80 meters
@far[0][ 0]=480,120
@near[0][ 0]=320,950
# Feed 0, line 1 = 81 meters
@far[0][ 1]=510,120
@near[0][ 1]=360,950
settings.txtIf lines don't align perfectly:
settings.txt| Mode | Key | Display |
|---|---|---|
| 0 | (default off) | No grid lines |
| 1 | 1 | Main meter lines at configured color |
| 2 | 2 | Main lines plus sub-meter half-meter markers |
| Setting | Purpose |
|---|---|
meter_line_count[N] | Number of grid lines per feed |
meter_line_start[N] | First meter mark value |
meter_line_increment[N] | Meters between lines (usually 1) |
meter_line_radius[N] | Line thickness in pixels |
@far[N][L] | Far anchor point for line L |
@near[N][L] | Near anchor point for line L |
meter_line_Y/U/V | Main line color |
meter1_line_Y/U/V | Highlighted line color |
meterD_line_Y/U/V | Sub-meter division color |