diff options
| author | Arne Dußin | 2020-11-01 20:48:05 +0100 |
|---|---|---|
| committer | Arne Dußin | 2020-11-01 20:48:05 +0100 |
| commit | 678406b21c14af2d1f1bd955368637f83f049011 (patch) | |
| tree | d9d9e46c61176fb6542aa4d4550f66877078c830 /src/grid.rs | |
| parent | 09ffb11f07e964fc1232a49047746afa3b92dd81 (diff) | |
| download | graf_karto-678406b21c14af2d1f1bd955368637f83f049011.tar.gz graf_karto-678406b21c14af2d1f1bd955368637f83f049011.zip | |
Make zoom-levels whole numbers to combat round-err
The grid was offset at certain zoom-levels and lower positions, so for
now I just made only whole zoom-levels possible, which removes the
offset. However, I consider this a band-aid-solution. Maybe change from
f32 to f64 and try out if that fixes it? Otherwise, a different
algorithm might work.
Diffstat (limited to 'src/grid.rs')
| -rw-r--r-- | src/grid.rs | 23 |
1 files changed, 22 insertions, 1 deletions
diff --git a/src/grid.rs b/src/grid.rs index 1ec49a3..d5fac6d 100644 --- a/src/grid.rs +++ b/src/grid.rs @@ -22,13 +22,34 @@ where let translation_y_px: i32 = transform.translation_px().y as i32 % transform.pixels_per_m() as i32; + /* + let mut row = 0; + loop { + let line_y = translation_y_px + (transform.pixels_per_m() * row as f32) as i32; + if line_y > screen_height { + break; + } + rld.draw_line(0, line_y as i32, screen_width, line_y as i32, LINE_COLOUR); + row += 1; + } + + let mut column = 0; + loop { + let line_x = translation_x_px + (transform.pixels_per_m() * column as f32) as i32; + if line_x > screen_width { + break; + } + rld.draw_line(line_x as i32, 0, line_x as i32, screen_height, LINE_COLOUR); + column += 1; + } + */ + // Draw the row lines. let mut line_y: f32 = translation_y_px as f32; while line_y <= screen_height as f32 { rld.draw_line(0, line_y as i32, screen_width, line_y as i32, LINE_COLOUR); line_y += transform.pixels_per_m(); } - // Draw the column lines. let mut line_x: f32 = translation_x_px as f32; while line_x <= screen_width as f32 { |
