[cairo-commit] doc/tutorial

Behdad Esfahbod behdad at kemper.freedesktop.org
Tue Apr 15 12:58:10 PDT 2008


 doc/tutorial/src/singular.c |   38 +++++++++++++++++++++-----------------
 1 file changed, 21 insertions(+), 17 deletions(-)

New commits:
commit 12831201d2461ae4452d91ad42bf74881da12e04
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Tue Apr 15 15:57:41 2008 -0400

    [doc/tutorial/src/singular.c] Fix a bug in delta computation

diff --git a/doc/tutorial/src/singular.c b/doc/tutorial/src/singular.c
index 241d342..958b2b0 100644
--- a/doc/tutorial/src/singular.c
+++ b/doc/tutorial/src/singular.c
@@ -58,19 +58,21 @@ get_singular_values (const cairo_matrix_t *matrix,
 		     double *major,
 		     double *minor)
 {
-  double xx = matrix->xx, xy = matrix->xy;
-  double yx = matrix->yx, yy = matrix->yy;
+    double xx = matrix->xx, xy = matrix->xy;
+    double yx = matrix->yx, yy = matrix->yy;
 
-  double a = xx*xx+yx*yx;
-  double b = xy*xy+yy*yy;
-  double k = xx*xy+yx*yy;
+    double a = xx*xx+yx*yx;
+    double b = xy*xy+yy*yy;
+    double k = xx*xy+yx*yy;
 
-  double f = (a+b) * .5;
-  double g = (a-b) * .5;
-  double delta = sqrt (g + k*k);
+    double f = (a+b) * .5;
+    double g = (a-b) * .5;
+    double delta = sqrt (g*g + k*k);
 
-  *major = sqrt (f + delta);
-  *minor = sqrt (f - delta);
+    if (major)
+	*major = sqrt (f + delta);
+    if (minor)
+	*minor = sqrt (f - delta);
 }
 
 /*
@@ -84,16 +86,18 @@ get_pen_axes (cairo_t *cr,
 	      double *major,
 	      double *minor)
 {
-  double width;
-  cairo_matrix_t matrix;
+    double width;
+    cairo_matrix_t matrix;
 
-  width = cairo_get_line_width (cr);
-  cairo_get_matrix (cr, &matrix);
+    width = cairo_get_line_width (cr);
+    cairo_get_matrix (cr, &matrix);
 
-  get_singular_values (&matrix, major, minor);
+    get_singular_values (&matrix, major, minor);
 
-  *major *= width;
-  *minor *= width;
+    if (major)
+	*major *= width;
+    if (minor)
+	*minor *= width;
 }
 
 static void


More information about the cairo-commit mailing list