mirror of
https://github.com/ClementTsang/bottom.git
synced 2025-07-27 15:44:17 +02:00
Slightly improve stability by using smaller values
This commit is contained in:
parent
a73e21d617
commit
8defa968e6
@ -230,7 +230,7 @@ mod test {
|
|||||||
fn create_time_graph() -> TimeGraph<'static> {
|
fn create_time_graph() -> TimeGraph<'static> {
|
||||||
TimeGraph {
|
TimeGraph {
|
||||||
title: " Network ".into(),
|
title: " Network ".into(),
|
||||||
x_min: -15000.0,
|
x_min: -15.0,
|
||||||
hide_x_labels: false,
|
hide_x_labels: false,
|
||||||
y_bounds: AxisBound::Max(100.5),
|
y_bounds: AxisBound::Max(100.5),
|
||||||
y_labels: &Y_LABELS,
|
y_labels: &Y_LABELS,
|
||||||
@ -254,7 +254,7 @@ mod test {
|
|||||||
let x_axis = tg.generate_x_axis();
|
let x_axis = tg.generate_x_axis();
|
||||||
|
|
||||||
let actual = Axis::default()
|
let actual = Axis::default()
|
||||||
.bounds(AxisBound::Min(-15000.0))
|
.bounds(AxisBound::Min(-15.0))
|
||||||
.labels(vec![Span::styled("15s", style), Span::styled("0s", style)])
|
.labels(vec![Span::styled("15s", style), Span::styled("0s", style)])
|
||||||
.style(style);
|
.style(style);
|
||||||
assert_eq!(x_axis.bounds, actual.bounds);
|
assert_eq!(x_axis.bounds, actual.bounds);
|
||||||
|
@ -71,39 +71,6 @@ impl Shape for CanvasLine {
|
|||||||
} else {
|
} else {
|
||||||
draw_line_high(painter, x1, y1, x2, y2, self.color);
|
draw_line_high(painter, x1, y1, x2, y2, self.color);
|
||||||
}
|
}
|
||||||
|
|
||||||
draw_line(painter, x1, y1, x2, y2, self.color);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Based on <https://github.com/gizak/termui/blob/master/drawille/drawille.go>
|
|
||||||
fn draw_line(
|
|
||||||
painter: &mut Painter<'_, '_>, x1: usize, y1: usize, x2: usize, y2: usize, colour: Color,
|
|
||||||
) {
|
|
||||||
let (left_point, right_point) = if x1 < x2 {
|
|
||||||
((x1, y1), (x2, y2))
|
|
||||||
} else {
|
|
||||||
((x2, y2), (x1, y1))
|
|
||||||
};
|
|
||||||
|
|
||||||
let dx = (left_point.0 as isize - right_point.0 as isize).abs();
|
|
||||||
let dy = (left_point.1 as isize - right_point.1 as isize).abs();
|
|
||||||
|
|
||||||
let slope = dy as f64 / dx as f64;
|
|
||||||
let slope_sign: isize = if left_point.1 < right_point.1 { 1 } else { -1 };
|
|
||||||
|
|
||||||
let mut target_y = left_point.1 as f64;
|
|
||||||
let mut current_y = left_point.1 as isize;
|
|
||||||
|
|
||||||
for current_x in (left_point.0)..(right_point.0) {
|
|
||||||
painter.paint(current_x, current_y as usize, colour);
|
|
||||||
|
|
||||||
target_y += slope * slope_sign as f64;
|
|
||||||
|
|
||||||
while current_y != target_y as isize && current_y >= 0 {
|
|
||||||
painter.paint(current_x, current_y as usize, colour);
|
|
||||||
current_y += slope_sign;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user