aboutsummaryrefslogtreecommitdiff
path: root/generic/Geo.c
diff options
context:
space:
mode:
authorlecoanet2002-09-02 12:23:13 +0000
committerlecoanet2002-09-02 12:23:13 +0000
commita54f2d228c29f05ccdfabb777edcd36b5e31f11b (patch)
tree580924c77a52664f52015ea297106185cd601d03 /generic/Geo.c
parentf229c5c574c753a7f6ca14e2efa9e712cc4dd73d (diff)
downloadtkzinc-a54f2d228c29f05ccdfabb777edcd36b5e31f11b.zip
tkzinc-a54f2d228c29f05ccdfabb777edcd36b5e31f11b.tar.gz
tkzinc-a54f2d228c29f05ccdfabb777edcd36b5e31f11b.tar.bz2
tkzinc-a54f2d228c29f05ccdfabb777edcd36b5e31f11b.tar.xz
* (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.
Diffstat (limited to 'generic/Geo.c')
-rw-r--r--generic/Geo.c40
1 files changed, 20 insertions, 20 deletions
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;
}
/*