]> granicus.if.org Git - graphviz/commitdiff
Fix: shape coordinates close to 0 now absolutely 0
authorErwin Janssen <erwinjanssen@outlook.com>
Thu, 3 Nov 2016 00:18:20 +0000 (01:18 +0100)
committerErwin Janssen <erwinjanssen@outlook.com>
Thu, 3 Nov 2016 00:22:34 +0000 (01:22 +0100)
Check wether the values are close to zero by checking if it lies between
-0.00001 and 0.00001. If this is the case, set the value to 0. This prevents
coordinates like 7.10543e-15, that are differ by platform.

lib/common/shapes.c

index 61e4fe1969eaebf50fd44f44a485d7d395702381..733ccb42dc28186ade99a72571fa856908142df4 100644 (file)
@@ -2888,7 +2888,18 @@ static void poly_gencode(GVJ_t * job, node_t * n)
        for (i = 0; i < sides; i++) {
            P = vertices[i + j * sides];
            AF[i].x = P.x * xsize + ND_coord(n).x;
-           AF[i].y = P.y * ysize + ND_coord(n).y;
+        AF[i].y = P.y * ysize + ND_coord(n).y;
+
+        // Set values that are close to zero, to absolute zero.
+        // This prevents coördinates like 7.10543e-15
+        if (AF[i].x > -0.00001 && AF[i].x < 0.00001)
+        {
+            AF[i].x = 0;
+        }
+        if (AF[i].y > -0.00001 && AF[i].y < 0.00001)
+        {
+            AF[i].y = 0;
+        }
        }
        if (sides <= 2) {
            if ((style & WEDGED) && (j == 0) && multicolor(fillcolor)) {