From a54f2d228c29f05ccdfabb777edcd36b5e31f11b Mon Sep 17 00:00:00 2001 From: lecoanet Date: Mon, 2 Sep 2002 12:23:13 +0000 Subject: * (SmoothPathWithBezier): Supprime les arrondis en entier utilis�s dans le calcul des points de controle des Beziers intermediaires. Cela conduisait � des points inexplicables ?-) en sortie. --- generic/Geo.c | 40 ++++++++++++++++++++-------------------- 1 file changed, 20 insertions(+), 20 deletions(-) (limited to 'generic') diff --git a/generic/Geo.c b/generic/Geo.c index 085ff87..57dab76 100644 --- a/generic/Geo.c +++ b/generic/Geo.c @@ -2457,14 +2457,14 @@ SmoothPathWithBezier(ZnPoint *fp, */ if ((fp[0].x == fp[num_fp-1].x) && (fp[0].y == fp[num_fp-1].y)) { closed = True; - s[0].x = REAL_TO_INT(0.5*fp[num_fp-2].x + 0.5*fp[0].x); - s[0].y = REAL_TO_INT(0.5*fp[num_fp-2].y + 0.5*fp[0].y); - s[1].x = REAL_TO_INT(0.167*fp[num_fp-2].x + 0.833*fp[0].x); - s[1].y = REAL_TO_INT(0.167*fp[num_fp-2].y + 0.833*fp[0].y); - s[2].x = REAL_TO_INT(0.833*fp[0].x + 0.167*fp[1].x); - s[2].y = REAL_TO_INT(0.833*fp[0].y + 0.167*fp[1].y); - s[3].x = REAL_TO_INT(0.5*fp[0].x + 0.5*fp[1].x); - s[3].y = REAL_TO_INT(0.5*fp[0].y + 0.5*fp[1].y); + s[0].x = 0.5*fp[num_fp-2].x + 0.5*fp[0].x; + s[0].y = 0.5*fp[num_fp-2].y + 0.5*fp[0].y; + s[1].x = 0.167*fp[num_fp-2].x + 0.833*fp[0].x; + s[1].y = 0.167*fp[num_fp-2].y + 0.833*fp[0].y; + s[2].x = 0.833*fp[0].x + 0.167*fp[1].x; + s[2].y = 0.833*fp[0].y + 0.167*fp[1].y; + s[3].x = 0.5*fp[0].x + 0.5*fp[1].x; + s[3].y = 0.5*fp[0].y + 0.5*fp[1].y; ZnListAdd(to_points, s, ZnListTail); GetBezierPoints(s, to_points, 1.0); } @@ -2480,14 +2480,14 @@ SmoothPathWithBezier(ZnPoint *fp, */ if ((i == 2) && !closed) { s[0] = fp[0]; - s[1].x = REAL_TO_INT(0.333*fp[0].x + 0.667*fp[1].x); - s[1].y = REAL_TO_INT(0.333*fp[0].y + 0.667*fp[1].y); + s[1].x = 0.333*fp[0].x + 0.667*fp[1].x; + s[1].y = 0.333*fp[0].y + 0.667*fp[1].y; } else { - s[0].x = REAL_TO_INT(0.5*fp[0].x + 0.5*fp[1].x); - s[0].y = REAL_TO_INT(0.5*fp[0].y + 0.5*fp[1].y); - s[1].x = REAL_TO_INT(0.167*fp[0].x + 0.833*fp[1].x); - s[1].y = REAL_TO_INT(0.167*fp[0].y + 0.833*fp[1].y); + s[0].x = 0.5*fp[0].x + 0.5*fp[1].x; + s[0].y = 0.5*fp[0].y + 0.5*fp[1].y; + s[1].x = 0.167*fp[0].x + 0.833*fp[1].x; + s[1].y = 0.167*fp[0].y + 0.833*fp[1].y; } /* @@ -2495,15 +2495,15 @@ SmoothPathWithBezier(ZnPoint *fp, * for last segment of open curves. */ if ((i == num_fp-1) && !closed) { - s[2].x = REAL_TO_INT(0.667*fp[1].x + 0.333*fp[2].x); - s[2].y = REAL_TO_INT(0.667*fp[1].y + 0.333*fp[2].y); + s[2].x = 0.667*fp[1].x + 0.333*fp[2].x; + s[2].y = 0.667*fp[1].y + 0.333*fp[2].y; s[3] = fp[2]; } else { - s[2].x = REAL_TO_INT(0.833*fp[1].x + 0.167*fp[2].x); - s[2].y = REAL_TO_INT(0.833*fp[1].y + 0.167*fp[2].y); - s[3].x = REAL_TO_INT(0.5*fp[1].x + 0.5*fp[2].x); - s[3].y = REAL_TO_INT(0.5*fp[1].y + 0.5*fp[2].y); + s[2].x = 0.833*fp[1].x + 0.167*fp[2].x; + s[2].y = 0.833*fp[1].y + 0.167*fp[2].y; + s[3].x = 0.5*fp[1].x + 0.5*fp[2].x; + s[3].y = 0.5*fp[1].y + 0.5*fp[2].y; } /* -- cgit v1.1