Mercurial > MadButterfly
diff src/shape_path.c @ 99:4aa1c9673363
Arc in path pass the test in example svg2code_ex.
author | Thinker K.F. Li <thinker@branda.to> |
---|---|
date | Tue, 09 Sep 2008 22:17:17 +0800 |
parents | 688f76b8e71c |
children | 1a1dda98730c |
line wrap: on
line diff
--- a/src/shape_path.c Tue Sep 09 18:11:37 2008 +0800 +++ b/src/shape_path.c Tue Sep 09 22:17:17 2008 +0800 @@ -172,7 +172,7 @@ SKIP_NUM(p); if(p == old) break; - TAKE_NUM(rx); + rx = atof(old); TAKE_NUM(ry); TAKE_NUM(x_rotate); @@ -243,11 +243,11 @@ sweep = *fix_args++; dx = x - cx; - dy = y = cy; + dy = y - cy; dx0 = x0 - cx; dy0 = y0 - cy; dxx = xx - cx; - dxy = xy = cy; + dxy = xy - cy; rx2 = dxx * dxx + dxy * dxy; rx = sqrtf(rx2); @@ -264,15 +264,15 @@ if(xyratio < 0) xyratio = -xyratio; - angle0 = acos(inner / rx2); + angle0 = acos(inner0 / rx2); if(cross0 < 0) - angle0 += PI; /* 3rd, 4th Quadrant */ + angle0 = PI * 2 - angle0; /* 3rd, 4th Quadrant */ inner = INNER(dx, dy, dxx, dxy); cross = CROSS(dx, dy, dxx, dxy); angle = acos(inner / rx2); if(cross < 0) - angle += PI; /* 3rd, 4th Quadrant */ + angle = PI * 2 - angle; /* 3rd, 4th Quadrant */ /* Make a path for arc */ rotate = acos(dxx / rx);