]> O.S.I.I.S - jp/vkvg.git/commitdiff
simplify line cap algo
authorJean-Philippe Bruyère <jp_bruyere@hotmail.com>
Fri, 20 Apr 2018 03:56:37 +0000 (05:56 +0200)
committerJean-Philippe Bruyère <jp_bruyere@hotmail.com>
Fri, 20 Apr 2018 03:56:37 +0000 (05:56 +0200)
src/vkvg_context.c

index b81f72e0e87e651c3d61d7618479633d1b81bc26..efc72346d48e643b8b8fcf8c4c4098028db0eed7 100644 (file)
@@ -408,14 +408,8 @@ void vkvg_stroke_preserve (VkvgContext ctx)
             if (ctx->lineCap == VKVG_LINE_CAP_ROUND){
                 float step = M_PI_2 / hw;
                 float a = acos(n.x) + M_PI_2;
-                if (n.y < 0){
-                    a = asin(n.y);
-                    if (n.x < 0)
-                        a = acos(-n.x) -M_PI_2;
-                    else
-                        a += M_PI_2;
-                }
-
+                if (n.y < 0)
+                    a = M_PI-a;
                 float a1 = a + M_PI;
 
                 a+=step;
@@ -461,15 +455,10 @@ void vkvg_stroke_preserve (VkvgContext ctx)
 
             if (ctx->lineCap == VKVG_LINE_CAP_ROUND){
                 firstIdx = ctx->vertCount;
-                float step = M_PI_4 / hw;
+                float step = M_PI_2 / hw;
                 float a = acos(n.x)+ M_PI_2;
-                if (n.y < 0){
-                    a = asin(n.y);
-                    if (n.x < 0)
-                        a = acos(-n.x) -M_PI_2;
-                    else
-                        a += M_PI_2;
-                }
+                if (n.y < 0)
+                    a = M_PI-a;
                 float a1 = a - M_PI;
                 a-=step;
                 while ( a > a1){
@@ -477,9 +466,6 @@ void vkvg_stroke_preserve (VkvgContext ctx)
                     a-=step;
                 }
 
-                //printf("x = %f; y = %f ; acos(n.x)=%f ;  ", n.x, n.y, acos(n.x));
-                //printf("sin(acos(n.x))=%f ;  \n", (acos(n.x)));
-
                 uint32_t p0Idx = ctx->vertCount-1;
                 for (int p = firstIdx-1 ; p < p0Idx; p++)
                     _add_triangle_indices(ctx, p+1, p, firstIdx-2);