本文整理汇总了C++中cairo_rel_line_to函数的典型用法代码示例。如果您正苦于以下问题:C++ cairo_rel_line_to函数的具体用法?C++ cairo_rel_line_to怎么用?C++ cairo_rel_line_to使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了cairo_rel_line_to函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: draw_cross
static void
draw_cross (cairo_t *cr,
double cx,
double cy,
double size)
{
cairo_move_to (cr, cx, cy - size/2.0);
cairo_rel_line_to (cr, size, size);
cairo_move_to (cr, cx, cy + size/2.0);
cairo_rel_line_to (cr, size, -size);
cairo_set_source_rgba (cr, 0.6, 0.6, 0.6, GSD_OSD_WINDOW_FG_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, GSD_OSD_WINDOW_FG_ALPHA);
cairo_set_line_width (cr, 10);
cairo_set_line_cap (cr, CAIRO_LINE_CAP_ROUND);
cairo_stroke (cr);
}
示例2: pycairo_rel_line_to
static PyObject *
pycairo_rel_line_to (PycairoContext *o, PyObject *args)
{
double dx, dy;
if (!PyArg_ParseTuple (args, "dd:Context.rel_line_to", &dx, &dy))
return NULL;
cairo_rel_line_to (o->ctx, dx, dy);
if (Pycairo_Check_Status (cairo_status (o->ctx)))
return NULL;
Py_RETURN_NONE;
}
示例3: DrawMarker
void DrawMarker(cairo_t *cr, gint x, gint y, gint type, GdkColor *color)
{
if (type == 0) {
gdk_cairo_set_source_color(cr, &color[0]);
cairo_move_to(cr, x - MARKERLENGTH, y);
cairo_rel_line_to(cr, 2 * MARKERLENGTH, 0);
cairo_move_to(cr, x, y);
cairo_rel_line_to(cr, 0, -MARKERLENGTH);
cairo_stroke(cr);
} else if (type == 1) {
gdk_cairo_set_source_color(cr, &color[1]);
cairo_move_to(cr, x, y - MARKERLENGTH);
cairo_rel_line_to(cr, 0, 2 * MARKERLENGTH);
cairo_move_to(cr, x, y);
cairo_rel_line_to(cr, MARKERLENGTH, 0);
cairo_stroke(cr);
} else if (type == 2) {
gdk_cairo_set_source_color(cr, &color[2]);
cairo_rectangle(cr, x - MARKERLENGTH / 2, y - MARKERLENGTH / 2, MARKERLENGTH, MARKERLENGTH);
cairo_stroke(cr);
}
}
示例4: cairo_save
void DefaultWebThemeEngine::paintCheckbox(WebCanvas* canvas, State state, const WebRect& rect, const ButtonExtraParams& param) const
{
cairo_save(canvas);
setupBorder(canvas, state);
cairo_rectangle(canvas, rect.x + 0.5, rect.y + 0.5, rect.width, rect.height);
cairo_stroke_preserve(canvas);
gradientFill(canvas, rect.y, rect.height, state == StatePressed);
if (param.checked) {
const double border = 3;
cairo_set_line_width(canvas, 2);
cairo_set_source_rgb(canvas, CHECK_COLOR, CHECK_COLOR, CHECK_COLOR);
cairo_move_to(canvas, rect.x + 0.5 + border, rect.y + 0.5 + rect.height - border);
cairo_rel_line_to(canvas, rect.width - border * 2, -rect.height + border * 2);
cairo_move_to(canvas, rect.x + 0.5 + border, rect.y + 0.5 + border);
cairo_rel_line_to(canvas, rect.width - border * 2, rect.height - border * 2);
cairo_stroke(canvas);
}
cairo_restore(canvas);
}
示例5: _cairo_draw_rounded_box
void
_cairo_draw_rounded_box (cairo_t *cr,
double x,
double y,
double w,
double h,
double r)
{
if (r == 0) {
cairo_rectangle (cr, x, y, w, h);
}
else {
cairo_move_to (cr, x, y + r);
cairo_arc (cr, x + r, y + r, r, 1.0 * M_PI, 1.5 * M_PI);
cairo_rel_line_to (cr, w - (r * 2), 0);
cairo_arc (cr, x + w - r, y + r, r, 1.5 * M_PI, 2.0 * M_PI);
cairo_rel_line_to (cr, 0, h - (r * 2));
cairo_arc (cr, x + w - r, y + h - r, r, 0.0 * M_PI, 0.5 * M_PI);
cairo_rel_line_to (cr, - (w - (r * 2)), 0);
cairo_arc (cr, x + r, y + h - r, r, 0.5 * M_PI, 1.0 * M_PI);
cairo_rel_line_to (cr, 0, - (h - (r * 2)));
}
}
示例6: rel_line_to
ETERM * rel_line_to(ETERM* arg, int c_node) {
ETERM *x, *y;
cairo_context *ctx = get_cairo_context(arg);
if (ctx) {
x = erl_element(2, arg);
y = erl_element(3, arg);
cairo_rel_line_to(ctx->cr, val(x), val(y));
erl_free_term(x);
erl_free_term(y);
return erl_format("{c_node, ~i, ok}", c_node);
} else {
return erl_format("{c_node, ~i, {error, '~s'}}", c_node, ERR_CONTEXT);
}
}
示例7: gdk_threads_enter
JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GdkGraphics2D_cairoRelLineTo
(JNIEnv *env, jobject obj, jdouble dx, jdouble dy)
{
struct graphics2d *gr = NULL;
gdk_threads_enter();
if (peer_is_disposed(env, obj)) { gdk_threads_leave(); return; }
gr = (struct graphics2d *) NSA_GET_G2D_PTR (env, obj);
g_assert (gr != NULL);
if (gr->debug) printf ("cairo_rel_line_to (%f, %f)\n", dx, dy);
cairo_rel_line_to (gr->cr, dx, dy);
gdk_threads_leave();
}
示例8: draw
static cairo_test_status_t
draw (cairo_t *cr, int width, int height)
{
cairo_translate (cr, PAD, PAD);
/* A red triangle with SOURCE */
cairo_move_to (cr, SIZE / 5, SIZE / 5);
cairo_rel_line_to (cr, SIZE / 2, 0);
cairo_rel_line_to (cr, -SIZE / 2, SIZE / 2);
cairo_close_path (cr);
cairo_set_operator (cr, CAIRO_OPERATOR_SOURCE);
cairo_set_source_rgba (cr, 1., 0., 0., 0.5); /* 50% red */
cairo_fill (cr);
/* A green circle with OVER */
cairo_arc (cr, SIZE / 2, SIZE / 2, SIZE / 4, 0., 2. * M_PI);
cairo_set_operator (cr, CAIRO_OPERATOR_OVER);
cairo_set_source_rgba (cr, 0., 1., 0., 0.5); /* 50% green */
cairo_fill (cr);
/* Another red triangle with SOURCE */
cairo_move_to (cr, SIZE / 2, SIZE / 2);
cairo_rel_line_to (cr, SIZE / 2, 0);
cairo_rel_line_to (cr, -SIZE / 2, SIZE / 2);
cairo_close_path (cr);
cairo_set_operator (cr, CAIRO_OPERATOR_SOURCE);
cairo_set_source_rgba (cr, 1., 0., 0., 0.5); /* 50% red */
cairo_fill (cr);
return CAIRO_TEST_SUCCESS;
}
示例9: draw_text_cursor_cb
static gboolean
draw_text_cursor_cb (GtkWidget *widget, cairo_t *cr, gpointer user_data)
{
GtkEditable *editable = GTK_EDITABLE(widget);
GtkStyleContext *stylectxt = gtk_widget_get_style_context (GTK_WIDGET(widget));
gint height = gtk_widget_get_allocated_height (widget);
const gchar *text;
GdkRGBA *fg_color;
GdkRGBA color;
gint x_offset;
gint cursor_x = 0;
// Get the layout x offset
gtk_entry_get_layout_offsets (GTK_ENTRY(widget), &x_offset, NULL);
// Get the foreground color
gdk_rgba_parse (&color, "black");
gtk_style_context_get_color (stylectxt, GTK_STATE_FLAG_NORMAL, &color);
fg_color = &color;
text = gtk_entry_get_text (GTK_ENTRY (widget));
if ((text != NULL) && (*text != '\0'))
{
PangoLayout *layout;
PangoRectangle strong_pos;
gint start_pos, end_pos, cursor_pos, cursor_byte_pos;
cursor_pos = gtk_editable_get_position (editable);
cursor_byte_pos = g_utf8_offset_to_pointer (text, cursor_pos) - text;
gtk_editable_get_selection_bounds (editable, &start_pos, &end_pos);
layout = gtk_entry_get_layout (GTK_ENTRY(widget));
pango_layout_get_cursor_pos (layout, cursor_byte_pos, &strong_pos, NULL);
cursor_x = x_offset + PANGO_PIXELS (strong_pos.x);
}
else
cursor_x = x_offset;
// Now draw a vertical line
cairo_set_source_rgb (cr, fg_color->red, fg_color->green, fg_color->blue);
cairo_set_line_width (cr, 1.0);
cairo_move_to (cr, cursor_x + 0.5, 2);
cairo_rel_line_to (cr, 0, height - 4);
cairo_stroke (cr);
return FALSE;
}
示例10: make_path
static void
make_path (cairo_t *cr)
{
cairo_move_to (cr, 0, SIZE/2 + LINE_WIDTH);
cairo_rel_line_to (cr, SIZE, 0);
cairo_rel_line_to (cr, -SIZE, 0);
cairo_close_path (cr);
cairo_move_to (cr, 3*SIZE/4, 0);
cairo_rel_line_to (cr, -SIZE/2, SIZE);
cairo_rel_line_to (cr, SIZE/2, -SIZE);
cairo_close_path (cr);
cairo_move_to (cr, 0, SIZE/2-LINE_WIDTH);
cairo_rel_curve_to (cr,
SIZE/2, -2*LINE_WIDTH,
SIZE/2, 2*LINE_WIDTH,
SIZE, 0);
cairo_rel_curve_to (cr,
-SIZE/2, 2*LINE_WIDTH,
-SIZE/2, -2*LINE_WIDTH,
-SIZE, 0);
cairo_close_path (cr);
}
示例11: gt_graphics_cairo_draw_vertical_line
void gt_graphics_cairo_draw_vertical_line(GtGraphics *gg, double x, double y,
GtColor color, double length,
double stroke_width)
{
GtGraphicsCairo *g = gt_graphics_cairo_cast(gg);
gt_assert(g);
cairo_save(g->cr);
cairo_move_to(g->cr, rnd_to_nhalf(x), rnd_to_nhalf(y));
cairo_set_line_width(g->cr, 1);
cairo_rel_line_to(g->cr, 0, floor(length));
cairo_set_line_width(g->cr, stroke_width);
cairo_set_source_rgba(g->cr, color.red, color.green, color.blue, color.alpha);
cairo_stroke(g->cr);
cairo_restore(g->cr);
}
示例12: diagonal
static cairo_test_status_t
diagonal (cairo_t *cr, int width, int height)
{
int x;
cairo_set_source_rgb (cr, 0.0, 0.0, 0.0);
cairo_paint (cr);
cairo_set_source_rgba (cr, 1, 1, 1, 1);
for (x = -HEIGHT*PRECISION-2; x <= (WIDTH+HEIGHT)*PRECISION+2; x += 6) {
cairo_move_to (cr, x / (double)PRECISION - 2, -2);
cairo_rel_line_to (cr, HEIGHT + 4, HEIGHT + 4);
}
cairo_set_line_width (cr, 2 / (double)PRECISION);
cairo_stroke (cr);
return CAIRO_TEST_SUCCESS;
}
示例13: psrpgn_
/*==================================================================================
psrpgn - subroutine to generate closed polygons using rel. coordinates for all after
the first
==================================================================================*/
void psrpgn_ (double *x1, double *y1, double *rx, double *ry, int *npts, double *rline, double *width,int *ifill) {
int i;
DEBUGPRINT(("In psrpgn\n"));
completeRelativeOperation();
cairo_move_to(dmh_cr, *x1, *y1);
for (i = 0; i <= *npts-1; i++) {
cairo_rel_line_to(dmh_cr, deviceW(rx[i]), deviceH(ry[i]));
}
cairo_close_path(dmh_cr);
setLineProperties((int) *rline, *width);
cairo_set_source_rgb (dmh_cr, 0, 0, 0); /* black */
cairo_stroke_preserve(dmh_cr);
setFillType (*ifill);
cairo_fill(dmh_cr);
}
示例14: vcap_sunburst_draw
static double
vcap_sunburst_draw (cairo_t * cr, const struct vcap_data_entry * e, unsigned int m_radius, double arc_start)
{
unsigned int i;
double arc_end, radius, nrsum, c;
radius = ((double)e->level / m_radius);
if (e->parent) {
arc_end = arc_start + ((double)e->amount / vcap_data_lookup("eth")->amount) * 2 * M_PI;
} else {
arc_end = 2 * M_PI;
}
if (e->entries)
{
nrsum = arc_start;
for (i = 0; i < e->ecount; i++)
{
nrsum = vcap_sunburst_draw(cr, e->entries[i], m_radius, nrsum);
}
}
cairo_move_to (cr, 0, 0);
cairo_rel_line_to (cr, cos (arc_start) * radius, sin (arc_start) * radius);
cairo_arc (cr, 0, 0, radius, arc_start, arc_end);
cairo_line_to (cr, 0, 0);
c = ((double)(1/(double)(arc_start+e->level+1)))+0.2;
cairo_set_source_rgb (cr, c + (e->level%3 > 0)*0.02, c + (e->level/3)*0.05, c + (e->level%2 == 0)*0.1);
cairo_fill_preserve (cr);
cairo_set_source_rgb (cr, 0, 0, 0);
cairo_set_line_width (cr, 0.001);
cairo_stroke (cr);
return arc_end;
}
示例15: metaball_a
//=================================================================================
// metaball
//=================================================================================
static void metaball_a(Qdr *qdr, cairo_t *cr, int edge, int x, int y, double radius)
{
switch(edge){
case 0: //MB_NON
cairo_arc(cr, x+radius, y+radius, radius, 180*(M_PI/180.0), 270*(M_PI/180.0));
break;
case 1: //MB_TB
cairo_arc(cr, x+radius, y+radius, radius, 180*(M_PI/180.0), 210*(M_PI/180.0));
cairo_arc_negative(cr, x+radius-sqrt(3)*radius, y, radius, 30*(M_PI/180.0), 0*(M_PI/180.0));
break;
case 2: //MB_LR
cairo_arc_negative(cr, x, y+radius-sqrt(3)*radius, radius, 90*(M_PI/180.0), 60*(M_PI/180.0));
cairo_arc(cr, x+radius, y+radius, radius, 240*(M_PI/180.0), 270*(M_PI/180.0));
break;
case 3: //MB_BOTH
cairo_arc_negative(cr, x, y, (2-sqrt(3))*radius, 90*(M_PI/180.0), 0*(M_PI/180.0));
break;
case 4: //MB_FULL
cairo_line_to(cr, x, y-radius);
cairo_rel_line_to(cr, radius, 0);
break;
}
}