Lines 1741-1747
intersect(active_line *endp, active_line *alp, fixed y, fixed y1, fixed *p_y_new
Link Here
|
1741 |
fixed dx_old = alp->x_current - endp->x_current; |
1741 |
fixed dx_old = alp->x_current - endp->x_current; |
1742 |
fixed dx_den = dx_old + endp->x_next - alp->x_next; |
1742 |
fixed dx_den = dx_old + endp->x_next - alp->x_next; |
1743 |
|
1743 |
|
1744 |
if (dx_den <= dx_old) |
1744 |
if (dx_den <= dx_old || dx_den == 0) |
1745 |
return false; /* Intersection isn't possible. */ |
1745 |
return false; /* Intersection isn't possible. */ |
1746 |
dy = y1 - y; |
1746 |
dy = y1 - y; |
1747 |
if_debug3('F', "[F]cross: dy=%g, dx_old=%g, dx_new=%g\n", |
1747 |
if_debug3('F', "[F]cross: dy=%g, dx_old=%g, dx_new=%g\n", |
Lines 1750-1756
intersect(active_line *endp, active_line *alp, fixed y, fixed y1, fixed *p_y_new
Link Here
|
1750 |
/* Do the computation in single precision */ |
1750 |
/* Do the computation in single precision */ |
1751 |
/* if the values are small enough. */ |
1751 |
/* if the values are small enough. */ |
1752 |
y_new = |
1752 |
y_new = |
1753 |
((dy | dx_old) < 1L << (size_of(fixed) * 4 - 1) ? |
1753 |
(((ufixed)(dy | dx_old)) < (1L << (size_of(fixed) * 4 - 1)) ? |
1754 |
dy * dx_old / dx_den : |
1754 |
dy * dx_old / dx_den : |
1755 |
(INCR_EXPR(mq_cross), fixed_mult_quo(dy, dx_old, dx_den))) |
1755 |
(INCR_EXPR(mq_cross), fixed_mult_quo(dy, dx_old, dx_den))) |
1756 |
+ y; |
1756 |
+ y; |
1757 |
- |
|
|