]> O.S.I.I.S - jp/vkvg.git/commitdiff
_get_arc_steps = asinf (1.0f / radius) * 1.5f * sqrtf(radius)
authorJean-Philippe Bruyère <jp_bruyere@hotmail.com>
Sat, 20 Nov 2021 06:46:37 +0000 (07:46 +0100)
committerJean-Philippe Bruyère <jp_bruyere@hotmail.com>
Sat, 20 Nov 2021 06:46:37 +0000 (07:46 +0100)
src/vkvg_context_internal.c

index e182a24dc68ef171bb689c70f04a214fa3ce549d..b813944af2ac4edafb296cf1aeda5d18dc9cdd7a 100644 (file)
@@ -223,9 +223,9 @@ float _normalizeAngle(float a)
     return res;
 }
 float _get_arc_step (VkvgContext ctx, float radius) {
-       float dx = 1, dy = 1;
-       vkvg_matrix_transform_distance (&ctx->pushConsts.mat, &dx, &dy);
-       return M_PIF/sqrtf(radius)*0.35f/fmaxf(dx,dy);
+       if (radius < 3.0f)
+               return asinf (1.0f / radius) * 0.25f;
+       return asinf (1.0f / radius) * 1.5f * sqrtf(radius);
 }
 void _create_gradient_buff (VkvgContext ctx){
        vkvg_buffer_create (ctx->pSurf->dev,