本文整理汇总了C++中cairo_arc函数的典型用法代码示例。如果您正苦于以下问题:C++ cairo_arc函数的具体用法?C++ cairo_arc怎么用?C++ cairo_arc使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了cairo_arc函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: cairo_save
void XYGraph::plot_point( cairo_t *cairo, double x, double y )
{
cairo_save( cairo );
cairo_translate( cairo, x, y );
cairo_scale( cairo, _point_scale, _point_scale );
if( _pointstyle == XYGRAPH_POINT_CIRCLE ) {
cairo_move_to( cairo, 1.0, 0.0 );
cairo_arc( cairo, 0.0, 0.0, 1.0, 0.0, 2.0*M_PI );
} else if( _pointstyle == XYGRAPH_POINT_BOX ) {
cairo_rectangle( cairo, -1.0, -1.0, 2.0, 2.0 );
}
cairo_restore( cairo );
if( _point_filled )
cairo_fill( cairo );
else
cairo_stroke( cairo );
}
开发者ID:p1heidary,项目名称:pybsimu,代码行数:19,代码来源:xygraph.cpp
示例2: drone_render
static void drone_render(GpsdViewerOsd *self, OsmGpsMap *map)
{
GpsdViewerOsdUAV *drone = self->priv->drone;
cairo_pattern_t *pat=NULL;
cairo_t *cr = NULL;
if(!drone->surface || !drone->need_render)
{
g_assert(drone->surface);
cr = cairo_create(drone->surface);
cairo_set_operator(cr, CAIRO_OPERATOR_SOURCE);
cairo_set_source_rgba(cr, 1.0, 1.0, 0.0, 0.0);
cairo_paint(cr);
cairo_set_operator(cr, CAIRO_OPERATOR_OVER);
drone->need_render = FALSE;
}
else
{
// **** fill with transparency
g_assert(drone->surface);
cr = cairo_create(drone->surface);
cairo_set_operator(cr, CAIRO_OPERATOR_SOURCE);
cairo_set_source_rgba(cr, 1.0, 1.0, 0.0, 0.0);
cairo_paint(cr);
cairo_set_operator(cr, CAIRO_OPERATOR_OVER);
cairo_set_line_width (cr, 1);
cairo_arc (cr, GPSD_VIEWER_OSD_UAV_W/2, GPSD_VIEWER_OSD_COORDINATES_H/2, GPSD_VIEWER_OSD_UAV_RADIUS, 0, 2*M_PI);
pat = cairo_pattern_create_radial (GPSD_VIEWER_OSD_UAV_W/2-1, GPSD_VIEWER_OSD_COORDINATES_H/2-1, GPSD_VIEWER_OSD_UAV_RADIUS*0.2,
GPSD_VIEWER_OSD_UAV_W/2, GPSD_VIEWER_OSD_COORDINATES_H/2, GPSD_VIEWER_OSD_UAV_RADIUS);
cairo_pattern_add_color_stop_rgba (pat,0, 0.8, 0.8, 1.0,0.8);
cairo_pattern_add_color_stop_rgba (pat,1, 0.0, 0.0, 0.65,0.8);
cairo_set_source (cr, pat);
cairo_fill_preserve(cr);
cairo_set_source_rgba(cr, 0.0, 0.0, 0.0, 1.0);
cairo_stroke (cr);
cairo_pattern_destroy (pat);
drone->need_render = FALSE;
}
cairo_destroy(cr);
}
开发者ID:Flystix,项目名称:FroboMind,代码行数:42,代码来源:gpsd_viewer_osd.c
示例3: fieldDraw
void fieldDraw(cairo_t *cairoDrawPlace, field_t *field)
{
int i, j;
for (i = 0; i < field->size.y; i++) {
for (j = 0; j < field->size.x; j++) {
switch (field->values[i][j]) {
case SHIP:
cairo_set_source_rgba(cairoDrawPlace, 1, 0.85, 0, 1);
cairo_rectangle(cairoDrawPlace, j * pixelConst, i * pixelConst, pixelConst, pixelConst);
cairo_fill(cairoDrawPlace);
cairo_stroke(cairoDrawPlace);
break;
case BLOCK_LVL1:
cairo_set_source_rgba(cairoDrawPlace, 1, 1, 1, 1);
cairo_rectangle(cairoDrawPlace, j * pixelConst, i * pixelConst, pixelConst, pixelConst);
cairo_fill(cairoDrawPlace);
cairo_stroke(cairoDrawPlace);
break;
case BLOCK_LVL2:
cairo_set_source_rgba(cairoDrawPlace, 0.5 , 0.5, 0.5, 1); //127
cairo_rectangle(cairoDrawPlace, j * pixelConst, i * pixelConst, pixelConst, pixelConst);
cairo_fill(cairoDrawPlace);
cairo_stroke(cairoDrawPlace);
break;
case BLOCK_LVL3:
cairo_set_source_rgba(cairoDrawPlace, 0.25, 0.25, 0.25, 1); //64
cairo_rectangle(cairoDrawPlace, j * pixelConst, i * pixelConst, pixelConst, pixelConst);
cairo_fill(cairoDrawPlace);
cairo_stroke(cairoDrawPlace);
break;
case BULLET:
cairo_set_source_rgba(cairoDrawPlace, 0, 0, 0, 1);
cairo_arc(cairoDrawPlace, j * pixelConst + (pixelConst / 2),
i * pixelConst + (pixelConst / 2),
pixelConst / 4, 0, 2 * 3.14);
cairo_fill(cairoDrawPlace);
cairo_stroke(cairoDrawPlace);
break;
}
}
}
}
开发者ID:evheny0,项目名称:epic-spaceride,代码行数:42,代码来源:graphics.c
示例4: crossover_cell_glyph
void crossover_cell_glyph(cairo_t *cr) {
static cairo_pattern_t *pat = 0;
cairo_save(cr);
cairo_scale(cr,0.8,0.8);
if(pat == 0) {
pat = cairo_pattern_create_radial (0.27, 0.3, 0.08, 0.2, 0.35, 0.6);
cairo_pattern_add_color_stop_rgb (pat, 0, 0.9, 0.9, 0.9);
cairo_pattern_add_color_stop_rgb (pat, 1, 0.8, 0.5, 0.8);
}
cairo_new_path(cr);
#ifdef CROSSOVER_DIAMOND
cairo_move_to(cr,0.5,0.0);
cairo_line_to(cr,0.0,0.5);
cairo_line_to(cr,0.5,1.0);
cairo_line_to(cr,1.0,0.5);
#else
cairo_arc(cr,0.5,0.5,0.5,0,M_PI*2);
#endif
cairo_close_path(cr);
cairo_set_source (cr, pat);
cairo_fill_preserve (cr);
cairo_set_source_rgb(cr,0.0,0.0,0.0);
cairo_set_line_width(cr,0.07);
cairo_set_line_join(cr,CAIRO_LINE_JOIN_ROUND);
cairo_stroke(cr);
#ifndef CROSSOVER_DIAMOND
cairo_move_to(cr,0.5+sqrt(2.0)/4.0,0.5+sqrt(2.0)/4.0);
cairo_line_to(cr,0.5-sqrt(2.0)/4.0,0.5-sqrt(2.0)/4.0);
cairo_move_to(cr,0.5-sqrt(2.0)/4.0,0.5+sqrt(2.0)/4.0);
cairo_line_to(cr,0.5+sqrt(2.0)/4.0,0.5-sqrt(2.0)/4.0);
cairo_stroke(cr);
#endif
cairo_restore(cr);
}
开发者ID:petersn,项目名称:rala_util,代码行数:42,代码来源:rala_glyphs.c
示例5: explosion_step1
void explosion_step1(cairo_t *cr, int X_Pos,int Y_Pos, int step)
{
int i = 10 * (step + 1);
int iarc;
cairo_set_source_rgba(cr, 0, 0, 0, 0.2126);
#ifdef GUI_INTERFACE
cairo_set_source_rgb(SF_rgb_context, 1.0, 0.0, 0.0);
#endif
// cairo_set_source_rgba(cr, 0.0, 1, 0);
for(iarc=i/5;iarc<360+i/5;iarc=iarc+20)
{
cairo_new_sub_path(cr);
cairo_arc(cr, X_Pos,Y_Pos, i, deg2rad(iarc), deg2rad(iarc+2));
}
stroke_in_clip(cr);
// cairo_reset_clip(cr);
// cairo_stroke(cr);
}
开发者ID:LucasvBerkel,项目名称:TweedejaarsProject,代码行数:20,代码来源:DE_Minimal.c
示例6: draw
static cairo_test_status_t
draw (cairo_t *cr, int width, int height)
{
/* fill with green so RGB and RGBA tests can share the ref image */
cairo_set_source_rgb (cr, 0, 1, 0);
cairo_paint (cr);
/* red to see eventual bugs immediately */
cairo_set_source_rgb (cr, 1, 0, 0);
/* stroke 3/4 of a circle where the last quarter would be this
* reference image. Keep just a 1 pixel border. Use a huge line
* width (twice the circle's radius to get it filled completely).
*/
cairo_set_line_width (cr, 2 * RADIUS);
cairo_arc (cr, 1, RADIUS - 1, RADIUS, 0, - M_PI / 2.0);
cairo_stroke (cr);
return CAIRO_TEST_SUCCESS;
}
开发者ID:AZed,项目名称:cairo,代码行数:20,代码来源:line-width-tolerance.c
示例7: draw
static void
draw (cairo_t *cr, int width, int height)
{
int radius;
if (width < height)
radius = width/2 - 4;
else
radius = height/2 - 4;
cairo_move_to (cr, width/2 + radius, height/2);
cairo_arc (cr, width/2, height/2, radius,
0.0, 2 * M_PI);
cairo_set_source_rgb (cr, 0.6, 0.8, 1.0);
cairo_fill_preserve (cr);
cairo_set_source_rgb (cr, 0.0, 0.0, 0.0);
cairo_stroke (cr);
}
开发者ID:jaglass,项目名称:WinCairoRequirements,代码行数:20,代码来源:circle.c
示例8: _cairo_ellipsis
static void
_cairo_ellipsis (cairo_t *cr,
double xc, double yc,
double xradius, double yradius,
double angle1, double angle2)
{
cairo_matrix_t save;
if (xradius <= 0.0 || yradius <= 0.0)
{
cairo_line_to (cr, xc, yc);
return;
}
cairo_get_matrix (cr, &save);
cairo_translate (cr, xc, yc);
cairo_scale (cr, xradius, yradius);
cairo_arc (cr, 0, 0, 1.0, angle1, angle2);
cairo_set_matrix (cr, &save);
}
开发者ID:ELWIN-MAO,项目名称:gtk,代码行数:20,代码来源:gtkroundedbox.c
示例9: render
static void
render (GtkCellRenderer *cell,
GdkDrawable *window,
GtkWidget *widget,
GdkRectangle *background_area,
GdkRectangle *cell_area,
GdkRectangle *expose_area,
GtkCellRendererState flags)
{
GtkCellRendererClass *klass;
GtkCellRendererBubblePrivate *priv;
cairo_t *cr;
GdkColor color;
gint radius;
g_return_if_fail(GTK_IS_CELL_RENDERER_BUBBLE (cell));
priv = GTK_CELL_RENDERER_BUBBLE (cell)->priv;
if (priv->show_bubble) {
cr = gdk_cairo_create(GDK_DRAWABLE (window));
gdk_color_parse("#ccc", &color);
gdk_cairo_set_source_color(cr, &color);
radius = MIN(cell_area->width, cell_area->height) / 2;
cairo_arc(cr,
cell_area->x + (cell_area->width / 2),
cell_area->y + (cell_area->height / 2),
radius,
0,
2 * G_PI);
cairo_fill(cr);
cairo_destroy(cr);
}
klass = GTK_CELL_RENDERER_CLASS(gtk_cell_renderer_bubble_parent_class);
klass->render(cell, window, widget, background_area,
cell_area, expose_area, flags);
}
开发者ID:stieg,项目名称:simply-mail,代码行数:41,代码来源:gtkcellrendererbubble.c
示例10: draw_waves
static void
draw_waves (cairo_t *cr,
double cx,
double cy,
double max_radius,
int volume_level)
{
const int n_waves = 3;
int last_wave;
int i;
last_wave = n_waves * volume_level / 100;
for (i = 0; i < n_waves; i++) {
double angle1;
double angle2;
double radius;
double alpha;
angle1 = -M_PI / 4;
angle2 = M_PI / 4;
if (i < last_wave)
alpha = 1.0;
else if (i > last_wave)
alpha = 0.1;
else alpha = 0.1 + 0.9 * (n_waves * volume_level % 100) / 100.0;
radius = (i + 1) * (max_radius / n_waves);
cairo_arc (cr, cx, cy, radius, angle1, angle2);
cairo_set_source_rgba (cr, 0.6, 0.6, 0.6, alpha / 2);
cairo_set_line_width (cr, 14);
cairo_set_line_cap (cr, CAIRO_LINE_CAP_ROUND);
cairo_stroke_preserve (cr);
cairo_set_source_rgba (cr, 1.0, 1.0, 1.0, alpha);
cairo_set_line_width (cr, 10);
cairo_set_line_cap (cr, CAIRO_LINE_CAP_ROUND);
cairo_stroke (cr);
}
}
开发者ID:ebroder,项目名称:gnome-settings-daemon,代码行数:41,代码来源:gsd-media-keys-window.c
示例11: paints_anime
static void
paints_anime (GtkObject *object, gpointer user_data)
{
if(!start) return;
GtkWidget * widget = (GtkWidget *) object;
cairo_t *cr;
cairo_t *ci;
cr = gdk_cairo_create (widget->window);
// nastavení pozadí kreslící plochy
cairo_set_source_rgb (cr, 0.0,0.0,0.0);
cairo_paint (cr);
static int i = 0;
i++;
//cairo_set_source_surface(cr, surface, 0, 0);
//cairo_mask_surface(cr, surface, 0, 0);
int h,w;
gdk_window_get_size(widget->window,&w,&h);
// printf("%d %d \n",w,h);
for(int k = 0; k < vgames.size(); k++) {
cairo_set_source_rgba (cr, 1.,1.,0., 1.);
cairo_arc (cr, vgames[k].x*w,vgames[k].y*h, 15, 0, 2 * M_PI);
cairo_fill_preserve (cr);
cairo_stroke (cr);
}
cairo_destroy(cr);
currently_anime = 0;
}
开发者ID:Varhoo,项目名称:Fingerpaint,代码行数:41,代码来源:gui.cpp
示例12: ensure_resources
static void
ensure_resources(cairo_surface_t *target)
{
cairo_t *cr;
int i, j;
if (source_surface != NULL)
return;
source_surface = cairo_surface_create_similar (target, CAIRO_CONTENT_COLOR_ALPHA,
16 * DIAMETER, 16 * DIAMETER);
cr = cairo_create(source_surface);
cairo_save(cr);
cairo_set_source_rgba(cr, 0, 0, 0, 0);
cairo_set_operator(cr, CAIRO_OPERATOR_SOURCE);
cairo_paint(cr);
cairo_restore(cr);
cairo_set_line_width(cr, 1.0);
for (j = 0; j < 16; j++)
for (i = 0; i < 16; i++)
{
cairo_set_source_rgba(cr,
((i * 41) % 16) / 15.,
((i * 31) % 16) / 15.,
((i * 23) % 16) / 15.,
0.25);
cairo_arc(cr,
i * DIAMETER + RADIUS, j * DIAMETER + RADIUS,
RADIUS - 0.5, 0, 2 * M_PI);
cairo_fill_preserve(cr);
cairo_set_source_rgba(cr,
((i * 41) % 16) / 15.,
((i * 31) % 16) / 15.,
((i * 23) % 16) / 15.,
1.0);
cairo_stroke(cr);
}
}
开发者ID:BoozzyAmdJin,项目名称:gtk-,代码行数:41,代码来源:animated-resizing.c
示例13: draw
static cairo_test_status_t
draw (cairo_t *cr, int width, int height)
{
cairo_rectangle (cr, PAD, PAD, SIZE, SIZE);
cairo_set_source_rgb (cr, 0, 0, 1);
cairo_fill_preserve (cr);
cairo_set_source_rgb (cr, 1, 0, 0);
cairo_stroke (cr);
cairo_translate (cr, SIZE + 2 * PAD, 0);
cairo_arc (cr,
PAD + SIZE / 2, PAD + SIZE / 2,
SIZE / 2,
0, 2 * M_PI);
cairo_fill_preserve (cr);
cairo_set_source_rgb (cr, 0, 0, 1);
cairo_stroke (cr);
return CAIRO_TEST_SUCCESS;
}
开发者ID:499940913,项目名称:moon,代码行数:21,代码来源:fill-and-stroke.c
示例14: GTK_PLOT_CAIRO
static void
gtk_plot_cairo_draw_ellipse (GtkPlotPC *pc,
gint filled,
gdouble x, gdouble y,
gdouble width, gdouble height)
{
cairo_t *cairo = GTK_PLOT_CAIRO(pc)->cairo;
if (!cairo)
return;
cairo_save(cairo);
cairo_translate(cairo, x+width/2.0,y+height/2.0);
cairo_scale (cairo, 1. / (height / 2.), 1. / (width / 2.));
cairo_arc (cairo, 0., 0., 1., 0., 2 * M_PI);
cairo_restore(cairo);
if (filled)
cairo_fill(cairo);
else
cairo_stroke(cairo);
}
开发者ID:2tim,项目名称:gtkextra,代码行数:21,代码来源:gtkplotcairo.c
示例15: abc_color_box_draw
static gboolean
abc_color_box_draw (GtkWidget *widget, cairo_t *cr)
{
AbcColorBox *self = ABC_COLOR_BOX(widget);
gint width = gtk_widget_get_allocated_width (widget);
gint height = gtk_widget_get_allocated_height (widget);
cairo_set_source_rgb (cr, 1, 0, 0);
cairo_rectangle(cr, 0, 0, width, height);
cairo_fill (cr);
if (self->priv->point) {
guint x,y;
g_object_get(self->priv->point, "x", &x, "y", &y, NULL);
cairo_arc(cr, x, y, 5.0, 0.0, 2 * M_PI);
cairo_set_source_rgb (cr, 0, 1, 0);
cairo_fill(cr);
}
return FALSE;
}
开发者ID:astraw,项目名称:gobject-modern-hello-world,代码行数:21,代码来源:abccolorbox.c
示例16: explosion_step2
void explosion_step2(cairo_t *cr, int X_Pos,int Y_Pos, int step)
{
int j = step * 10;
int iarc;
if (j>0)
{
cairo_set_source_rgba(cr, 0, 0, 0, 0.9278);
#ifdef GUI_INTERFACE
cairo_set_source_rgb(SF_rgb_context, 1.0, 1.0, 0.0);
#endif
for(iarc=j/5;iarc<360+j/5;iarc=iarc+20)
{
cairo_new_sub_path(cr);
cairo_arc(cr,X_Pos,Y_Pos,j,deg2rad(iarc),deg2rad(iarc+2));
}
stroke_in_clip(cr);
// cairo_reset_clip(cr);
// cairo_stroke(cr);
}
}
开发者ID:LucasvBerkel,项目名称:TweedejaarsProject,代码行数:21,代码来源:DE_Minimal.c
示例17: osd_render_crosshair_shape
void
osd_render_crosshair_shape(cairo_t *cr, int w, int h, int r, int tick) {
cairo_arc (cr, w/2, h/2,
r, 0, 2*M_PI);
cairo_move_to (cr, w/2 - r,
h/2);
cairo_rel_line_to (cr, -tick, 0);
cairo_move_to (cr, w/2 + r,
h/2);
cairo_rel_line_to (cr, tick, 0);
cairo_move_to (cr, w/2,
h/2 - r);
cairo_rel_line_to (cr, 0, -tick);
cairo_move_to (cr, w/2,
h/2 + r);
cairo_rel_line_to (cr, 0, tick);
cairo_stroke (cr);
}
开发者ID:jjardon,项目名称:osm-gps-map,代码行数:21,代码来源:osd-utils.c
示例18: dtgtk_cairo_paint_zoom
void dtgtk_cairo_paint_zoom(cairo_t *cr, gint x, gint y, gint w, gint h, gint flags)
{
gint s = (w<h?w:h);
cairo_translate(cr, x+(w/2.0)-(s/2.0), y+(h/2.0)-(s/2.0));
cairo_scale (cr,s,s);
/* draw magnifying glass */
cairo_set_line_cap(cr,CAIRO_LINE_CAP_ROUND);
// handle
cairo_set_line_width(cr, 0.2);
cairo_move_to(cr, 0.9, 1.0 - 0.1);
cairo_line_to(cr, 0.65, 1.0 - 0.35);
cairo_stroke(cr);
// lens
cairo_set_line_width(cr, 0.1);
cairo_arc(cr, 0.35, 1.0 - 0.65, 0.3, -M_PI, M_PI);
cairo_stroke(cr);
}
开发者ID:ksyz,项目名称:darktable,代码行数:21,代码来源:paint.c
示例19: render_dots
void render_dots(cairo_t *cr, int subdiv) {
int x, y;
int a = 1 << subdiv;
cairo_new_path(cr);
for (y = -a; y <= a; y = y + 1) {
for (x = -a; x <= a; x = x + 1) {
cairo_new_sub_path(cr);
cairo_arc(cr, (double) x / a, (double) y / a, 1/256.0, 0, 2 * M_PI);
}
}
cairo_set_source_rgb(cr, 0.0, 0.0, 0.0);
cairo_set_line_width(cr, 1/64.0);
cairo_stroke_preserve(cr);
cairo_set_source_rgb(cr, 1.0, 1.0, 1.0);
cairo_set_line_width(cr, 1/128.0);
cairo_stroke(cr);
}
开发者ID:acdimalev,项目名称:acdimalev-competition-ludumdare18,代码行数:21,代码来源:editor.c
示例20: draw_map
// gdouble scale_factor = ((float)MIN(width,height))/(128+SPACING/2);
// cairo_scale(cr, scale_factor, scale_factor);
// RsvgHandle* svg = rsvg_handle_new_from_file ("ship.svg", NULL);
// rsvg_handle_render_cairo(svg, cr);
static void draw_map(cairo_t * cr, guint width, guint height, guint i, guint j) {
switch (map[i][j]) {
case BRICK_WALL:
cairo_set_source_rgba(cr, 0.5, 0.5, 0.5, 1.0);
break;
case BRICK_TOP:
cairo_set_source_rgba(cr, 0.2, 0.2, 0.2, 1.0);
break;
default:
cairo_set_source_rgba(cr, 0.8, 0.8, 0.8, 1.0);
break;
}
cairo_rectangle(cr, j*width, i*height, (j+1)*width, (i+1)*height);
cairo_fill(cr);
if (map[i][j] == GREY_FLOOR) {
cairo_set_source_rgba (cr, 1.0, 1.0, 1.0, 1.0);
cairo_arc (cr, j*width + width/2, i*height + height/2 + height/5, MIN(width, height)/5, 0, 2 * M_PI);
cairo_fill(cr);
}
}
开发者ID:evfool,项目名称:eternal,代码行数:25,代码来源:eternal.c
注:本文中的cairo_arc函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论