]> git.sur5r.net Git - glabels/blob - src/cairo-ellipse-path.c
Imported Upstream version 2.2.8
[glabels] / src / cairo-ellipse-path.c
1 /* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- */
2
3 /*
4  *  (GLABELS) Label and Business Card Creation program for GNOME
5  *
6  *  cairo_ellipse_path.c:  Cairo ellipse path module
7  *
8  *  Copyright (C) 2001-2007  Jim Evins <evins@snaught.com>.
9  *
10  *  This program is free software; you can redistribute it and/or modify
11  *  it under the terms of the GNU General Public License as published by
12  *  the Free Software Foundation; either version 2 of the License, or
13  *  (at your option) any later version.
14  *
15  *  This program is distributed in the hope that it will be useful,
16  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
17  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18  *  GNU General Public License for more details.
19  *
20  *  You should have received a copy of the GNU General Public License
21  *  along with this program; if not, write to the Free Software
22  *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
23  */
24
25 #include <config.h>
26
27 #include "cairo-ellipse-path.h"
28
29 #include <math.h>
30 #include <glib.h>
31
32 #include "debug.h"
33
34 /*===========================================*/
35 /* Private macros and constants.             */
36 /*===========================================*/
37
38 #define ARC_FINE   2
39
40 /*===========================================*/
41 /* Private types                             */
42 /*===========================================*/
43
44 /*===========================================*/
45 /* Private globals                           */
46 /*===========================================*/
47
48 /*===========================================*/
49 /* Local function prototypes                 */
50 /*===========================================*/
51
52
53 \f
54 /*****************************************************************************/
55 /* Create ellipse path                                                       */
56 /*****************************************************************************/
57 void
58 gl_cairo_ellipse_path (cairo_t           *cr,
59                        gdouble            rx,
60                        gdouble            ry)
61 {
62         gdouble x, y;
63         gint i_theta;
64
65         gl_debug (DEBUG_VIEW, "START");
66
67         cairo_new_path (cr);
68         cairo_move_to (cr, 2*rx, ry);
69         for (i_theta = ARC_FINE; i_theta <= 360; i_theta += ARC_FINE) {
70                 x = rx + rx * cos (i_theta * G_PI / 180.0);
71                 y = ry + ry * sin (i_theta * G_PI / 180.0);
72                 cairo_line_to (cr, x, y);
73         }
74         cairo_close_path (cr);
75
76         gl_debug (DEBUG_VIEW, "END");
77 }
78
79