summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/plot/generic.c18
1 files changed, 7 insertions, 11 deletions
diff --git a/src/plot/generic.c b/src/plot/generic.c
index 3bd06a5..3d84104 100644
--- a/src/plot/generic.c
+++ b/src/plot/generic.c
@@ -173,22 +173,18 @@ static bool find_span(const int *p, int n, int x, int y, int *x0, int *x1)
} else {
/* find crossing (intersection of this line and
* current y level) */
- int numerator = (y - p_y0) * (p_x1 - p_x0);
- int denominator = (p_y1 - p_y0);
+ int num = (y - p_y0) * (p_x1 - p_x0);
+ int den = (p_y1 - p_y0);
/* To round to nearest (rather than down)
* half the denominator is either added to
* or subtracted from the numerator,
* depending on whether the numerator and
- * denominator have the same sign */
- if ((numerator < 0) == (denominator < 0))
- x_new = p_x0 + (numerator +
- (denominator / 2)) /
- denominator;
- else
- x_new = p_x0 + (numerator -
- (denominator / 2)) /
- denominator;
+ * denominator have the same sign. */
+ num = ((num < 0) == (den < 0)) ?
+ num + (den / 2) :
+ num - (den / 2);
+ x_new = p_x0 + num / den;
}
/* ignore crossings before current x */