From 1a0cc609b9fccd3b183257a007c08e5295e782e8 Mon Sep 17 00:00:00 2001 From: Michael Drake Date: Mon, 1 Feb 2010 09:40:20 +0000 Subject: Simplification. svn path=/trunk/libnsfb/; revision=9948 --- src/plot/generic.c | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) (limited to 'src/plot') 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 */ -- cgit v1.2.1