Description:
Fix tick spacing so it covers the entire range.
Commit status:
[Not Reviewed]
References:
Comments:
0 Commit comments 0 Inline Comments
Unresolved TODOs:
There are no unresolved TODOs
Add another comment

r624:b0929be285ef -

@@ -56,7 +56,8
56 56
57 57
58 58 public static void DrawLinearAxis(ImDrawListPtr draw_list, Num.Vector2 range, bool vertical, int points, Num.Vector2 position) {
59 var tick_spacing = (int)Math.Abs((range.Y - range.X) / points);
59 //See DrawLinearLabels for explanation
60 var tick_spacing = (int)Math.Abs((range.Y - range.X) / (points - 1));
60 61 var tick_length = 5;
61 62 var tick_adjust = vertical ? new Num.Vector2(tick_length, 0) : new Num.Vector2(0, tick_length);
62 63
@@ -76,7 +77,10
76 77 }
77 78
78 79 public static async void DrawLinearLabels(ImFontPtr font, ImDrawListPtr draw_list, Num.Vector2 domain, Num.Vector2 range, bool vertical, int labels, Num.Vector2 starting_position) {
79 var tick_spacing = (int)Math.Abs((range.Y - range.X) / (labels));
80 //We need to increment by one in order to cover the entire range.
81 //For example, if our range is 0 - 100, and we want 11 ticks, 100 / 10 gives us a spacing o 10
82 //So our 11 labels become 0, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100.
83 var tick_spacing = (int)Math.Abs((range.Y - range.X) / (labels - 1));
80 84 var tick_length = 5;
81 85 var tick_adjust = vertical ? new Num.Vector2(tick_length, 0) : new Num.Vector2(0, tick_length);
82 86
@@ -292,8 +296,8
292 296 }
293 297 }
294 298
295 DrawLinearAxis(draw_list, domain /*new Num.Vector2(0, 200)*/, true, 10, Num.Vector2.Add(c, new Num.Vector2(padding, padding)));
296 DrawLinearLabels(font, draw_list, domain, range /*new Num.Vector2(0, 200)*/, true, 10, c);
299 DrawLinearAxis(draw_list, domain /*new Num.Vector2(0, 200)*/, true, 11, Num.Vector2.Add(c, new Num.Vector2(padding, padding)));
300 DrawLinearLabels(font, draw_list, domain, range /*new Num.Vector2(0, 200)*/, true, 11, c);
297 301 DrawLinearAxis(draw_list, new Num.Vector2(0, 350), false, 12, Num.Vector2.Add(c, new Num.Vector2(padding, 200 - padding)));
298 302
299 303 ImGui.Dummy(new Num.Vector2(350, 200));
You need to be logged in to leave comments. Login now