本文整理汇总了C++中cairo_rotate函数的典型用法代码示例。如果您正苦于以下问题:C++ cairo_rotate函数的具体用法?C++ cairo_rotate怎么用?C++ cairo_rotate使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了cairo_rotate函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: add_label
static void
add_label (struct chart *c,
int test,
const char *label)
{
cairo_text_extents_t extents;
double dx, x;
cairo_save (c->cr);
dx = c->width / (double) c->num_tests;
if (dx / 2 - PAD < 4)
return;
cairo_set_font_size (c->cr, dx / 2 - PAD);
cairo_text_extents (c->cr, label, &extents);
cairo_set_source_rgb (c->cr, .5, .5, .5);
x = (test + .5) * dx;
cairo_save (c->cr);
cairo_translate (c->cr, x, c->height - PAD / 2);
cairo_rotate (c->cr, -M_PI/2);
cairo_move_to (c->cr, 0, -extents.y_bearing/2);
cairo_show_text (c->cr, label);
cairo_restore (c->cr);
cairo_save (c->cr);
cairo_translate (c->cr, x, PAD / 2);
cairo_rotate (c->cr, -M_PI/2);
cairo_move_to (c->cr, -extents.width, -extents.y_bearing/2);
cairo_show_text (c->cr, label);
cairo_restore (c->cr);
cairo_restore (c->cr);
}
开发者ID:GuoCheng111,项目名称:WinCairoRequirements,代码行数:34,代码来源:cairo-perf-chart.c
示例2: add_rectangle
static void
add_rectangle (cairo_t *cr, double size)
{
double x, y;
if (size < 1)
return;
cairo_get_current_point (cr, &x, &y);
cairo_rel_move_to (cr, -size/2., -size/2.);
cairo_rel_line_to (cr, size, 0);
cairo_rel_line_to (cr, 0, size);
cairo_rel_line_to (cr, -size, 0);
cairo_close_path (cr);
cairo_save (cr);
cairo_translate (cr, -size/2., size);
cairo_move_to (cr, x, y);
cairo_rotate (cr, M_PI/4);
add_rectangle (cr, size / M_SQRT2);
cairo_restore (cr);
cairo_save (cr);
cairo_translate (cr, size/2., size);
cairo_move_to (cr, x, y);
cairo_rotate (cr, -M_PI/4);
add_rectangle (cr, size / M_SQRT2);
cairo_restore (cr);
}
开发者ID:AliYousuf,项目名称:cairo,代码行数:30,代码来源:pythagoras-tree.c
示例3: match
void match(unsigned int position)
{
// cairo_set_line_cap(cairoOut, CAIRO_LINE_CAP_ROUND);
m_sensorReference.seek(position);
cairo_matrix_t m1;
cairo_get_matrix(cairoOut, &m1);
cairo_identity_matrix(cairoOut);
cairo_set_source_surface(cairoOut, cairo_get_target(cairoMap), 0., 0.);
cairo_paint(cairoOut);
cairo_set_matrix(cairoOut, &m1);
// cairo_set_line_width(cairoOut, 1./(2.*scaleFactor));
std::vector<InterestPoint *> pointsLocal(m_pointsReference[position].size());
const LaserReading* lreadReference = dynamic_cast<const LaserReading*>(m_sensorReference.current());
for(unsigned int j = 0; j < m_pointsReference[position].size(); j++){
InterestPoint * point = new InterestPoint(*m_pointsReference[position][j]);
point->setPosition(lreadReference->getLaserPose().ominus(point->getPosition()));
pointsLocal[j] = point;
}
for(unsigned int i = 0; i < m_pointsReference.size(); i++){
if(i == position) {
continue;
}
OrientedPoint2D transform;
std::vector< std::pair<InterestPoint*, InterestPoint* > > correspondences;
double result = m_ransac->matchSets(m_pointsReference[i], pointsLocal, transform, correspondences);
if(correspondences.size() >= corresp) {
cairo_matrix_t m;
cairo_get_matrix(cairoOut, &m);
cairo_translate(cairoOut, transform.x, transform.y);
cairo_rotate(cairoOut, transform.theta);
cairo_set_source_rgba(cairoOut, 1., 0., 0., 1. - result/(acceptanceSigma * acceptanceSigma * 5.99 * double(pointsLocal.size())));
cairo_move_to(cairoOut, 0., -0.3);
cairo_line_to(cairoOut, 0.6, 0.);
cairo_line_to(cairoOut, 0., 0.3);
cairo_close_path(cairoOut);
cairo_fill(cairoOut);
cairo_set_matrix(cairoOut, &m);
}
}
cairo_matrix_t m;
cairo_get_matrix(cairoOut, &m);
cairo_translate(cairoOut, lreadReference->getLaserPose().x, lreadReference->getLaserPose().y);
cairo_rotate(cairoOut, lreadReference->getLaserPose().theta);
cairo_set_source_rgba(cairoOut, 0., 0., 1., 1.);
cairo_move_to(cairoOut, 0., -0.3);
cairo_line_to(cairoOut, 0.6, 0.);
cairo_line_to(cairoOut, 0., 0.3);
cairo_close_path(cairoOut);
cairo_stroke(cairoOut);
cairo_set_matrix(cairoOut, &m);
// cairo_show_page(cairoOut);
}
开发者ID:artivis,项目名称:flirtlib,代码行数:58,代码来源:RansacLoopClosureDrawMovie.cpp
示例4: cairo_create
void BenchCairo::runFillRectRotate(BenchOutput& output, const BenchParams& params)
{
cairo_t* cr = cairo_create(screenCairo);
configureContext(cr, params);
BenchRandom rRect(app);
BenchRandom rArgb(app);
float cx = (float)params.screenSize.w * 0.5f;
float cy = (float)params.screenSize.h * 0.5f;
float angle = 0.0f;
if (params.source == BENCH_SOURCE_SOLID)
{
uint32_t i, quantity = params.quantity;
for (i = 0; i < quantity; i++, angle += 0.01f)
{
Fog::RectF r(rRect.getRectF(params.screenSize, params.shapeSize, params.shapeSize));
Fog::Argb32 c0(rArgb.getArgb32());
cairo_translate(cr, cx, cy);
cairo_rotate(cr, angle);
cairo_translate(cr, -cx, -cy);
cairo_set_source_rgba(cr, double(c0.r) * sc, double(c0.g) * sc, double(c0.b) * sc, double(c0.a) * sc);
cairo_rectangle(cr, r.x, r.y, r.w, r.h);
cairo_fill(cr);
cairo_identity_matrix(cr);
}
}
else
{
uint32_t i, quantity = params.quantity;
for (i = 0; i < quantity; i++, angle += 0.01f)
{
Fog::RectF r(rRect.getRectF(params.screenSize, params.shapeSize, params.shapeSize));
Fog::Argb32 c0(rArgb.getArgb32());
Fog::Argb32 c1(rArgb.getArgb32());
Fog::Argb32 c2(rArgb.getArgb32());
cairo_translate(cr, cx, cy);
cairo_rotate(cr, angle);
cairo_translate(cr, -cx, -cy);
cairo_pattern_t* pattern = createLinearGradient(r.x, r.y, r.x + r.w, r.y + r.h, c0, c1, c2);
cairo_set_source(cr, pattern);
cairo_rectangle(cr, r.x, r.y, r.w, r.h);
cairo_fill(cr);
cairo_identity_matrix(cr);
cairo_pattern_destroy(pattern);
}
}
cairo_destroy(cr);
}
开发者ID:Lewerow,项目名称:DetailIdentifier,代码行数:58,代码来源:BenchCairo.cpp
示例5: handle_apply
void handle_apply(render_context& ctx) override {
if(std::abs(cx_) < DBL_EPSILON && std::abs(cy_) < DBL_EPSILON) {
cairo_rotate(ctx.cairo(), angle_);
} else {
cairo_translate(ctx.cairo(), cx_, cy_);
cairo_rotate(ctx.cairo(), angle_);
cairo_translate(ctx.cairo(), -cx_, -cy_);
}
}
开发者ID:sweetkristas,项目名称:mercy,代码行数:9,代码来源:svg_transform.cpp
示例6: cairo_image_surface_create
void TriangleMarkerImpl::DrawSymbol()
{
m_icon = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, m_size*2, m_size*2);
m_cairo = cairo_create(m_icon);
size_t count = sizeof(g_auge_marker_triangle_points) / sizeof(double) / 2;
double offset_x=0, offset_y=0;
double cx=m_size;
double cy=m_size;
double x, y;
double size_2 = m_size / 2.0f;
cairo_new_path(m_cairo);
cairo_translate (m_cairo, cx, cy);
//cairo_scale(m_cairo,10,10);
cairo_rotate (m_cairo, m_rotation*PI/180.0f);
x = g_auge_marker_triangle_points[0][0];
y = g_auge_marker_triangle_points[0][1];
cairo_move_to(m_cairo, x*size_2, y*size_2);
for(size_t i=1; i<count; i++)
{
x = g_auge_marker_triangle_points[i][0];
y = g_auge_marker_triangle_points[i][1];
cairo_line_to(m_cairo, x*size_2, y*size_2);
}
cairo_close_path(m_cairo);
cairo_rotate (m_cairo, m_rotation*PI/180.0f);
if(m_pFill!=NULL)
{
GColor& color = m_pFill->GetColor();
cairo_set_source_rgba(m_cairo, color.GetRedF(), color.GetGreenF(), color.GetBlueF(), color.GetAlphaF());
if(m_pStroke==NULL)
{
cairo_fill(m_cairo);
}
else
{
cairo_fill_preserve(m_cairo);
}
}
if(m_pStroke!=NULL)
{
set_stroke_style(m_cairo, m_pStroke);
cairo_stroke(m_cairo);
}
//cairo_surface_write_to_png(m_icon, "G:\\temp\\map\\icon.png");
}
开发者ID:marsprj,项目名称:Auge.GIS,代码行数:50,代码来源:TriangleMarkerImpl.cpp
示例7: gtk_css_image_builtin_draw_arrow
static void
gtk_css_image_builtin_draw_arrow (GtkCssImage *image,
cairo_t *cr,
double width,
double height,
GtkCssImageBuiltinType image_type)
{
GtkCssImageBuiltin *builtin = GTK_CSS_IMAGE_BUILTIN (image);
double line_width;
double size;
size = MIN (width, height);
cairo_translate (cr, width / 2.0, height / 2.0);
switch (image_type)
{
case GTK_CSS_IMAGE_BUILTIN_ARROW_UP:
break;
case GTK_CSS_IMAGE_BUILTIN_ARROW_DOWN:
cairo_rotate (cr, G_PI);
break;
case GTK_CSS_IMAGE_BUILTIN_ARROW_LEFT:
cairo_rotate (cr, 3 * G_PI / 2);
break;
case GTK_CSS_IMAGE_BUILTIN_ARROW_RIGHT:
cairo_rotate (cr, G_PI / 2);
break;
default:
g_assert_not_reached ();
break;
}
line_width = size / 3.0 / sqrt (2);
cairo_set_line_width (cr, line_width);
cairo_set_line_join (cr, CAIRO_LINE_JOIN_ROUND);
cairo_set_line_cap (cr, CAIRO_LINE_CAP_ROUND);
cairo_scale (cr,
(size / (size + line_width)),
(size / (size + line_width)));
cairo_move_to (cr, -size / 2.0, size / 4.0);
cairo_rel_line_to (cr, size / 2.0, -size / 2.0);
cairo_rel_line_to (cr, size / 2.0, size / 2.0);
gdk_cairo_set_source_rgba (cr, &builtin->fg_color);
cairo_stroke (cr);
}
开发者ID:Distrotech,项目名称:gtk,代码行数:48,代码来源:gtkcssimagebuiltin.c
示例8: draw
static void
draw (TboObjectBase *self, Frame *frame, cairo_t *cr)
{
TboObjectPixmap *pixmap = TBO_OBJECT_PIXMAP (self);
int w, h;
cairo_surface_t *image;
GdkPixbuf *pixbuf;
GError *error = NULL;
char path[255];
tbo_files_expand_path (pixmap->path->str, path);
pixbuf = gdk_pixbuf_new_from_file (path, &error);
if (!pixbuf) {
g_warning ("There's a problem here: %s", error->message);
return;
}
w = gdk_pixbuf_get_width (pixbuf);
h = gdk_pixbuf_get_height (pixbuf);
if (!self->width) self->width = w;
if (!self->height) self->height = h;
float factorw = (float)self->width / (float)w;
float factorh = (float)self->height / (float)h;
cairo_matrix_t mx = {1, 0, 0, 1, 0, 0};
tbo_object_base_get_flip_matrix (self, &mx);
cairo_rectangle(cr, frame->x+2, frame->y+2, frame->width-4, frame->height-4);
cairo_clip (cr);
cairo_translate (cr, frame->x+self->x, frame->y+self->y);
cairo_rotate (cr, self->angle);
cairo_transform (cr, &mx);
cairo_scale (cr, factorw, factorh);
gdk_cairo_set_source_pixbuf (cr, pixbuf, 0, 0);
cairo_paint (cr);
cairo_scale (cr, 1/factorw, 1/factorh);
cairo_transform (cr, &mx);
cairo_rotate (cr, -self->angle);
cairo_translate (cr, -(frame->x+self->x), -(frame->y+self->y));
cairo_reset_clip (cr);
cairo_surface_destroy (image);
}
开发者ID:FranciscoJRA,项目名称:TBO,代码行数:48,代码来源:tbo-object-pixmap.c
示例9: draw_arrow
static void
draw_arrow (GOArrow const *arrow, cairo_t *cr, GOStyle *style,
double *endx, double *endy, double phi)
{
double l, w;
if (arrow->typ == GO_ARROW_NONE)
return;
l = hypot (*endx, *endy);
w = style->line.width ? style->line.width / 2.0 : 0.5;
switch (arrow->typ) {
case GO_ARROW_KITE:
cairo_save (cr);
cairo_translate (cr, (int) *endx, (int) *endy);
cairo_rotate (cr, phi);
cairo_move_to (cr, -arrow->a, w);
cairo_line_to (cr, -arrow->b, w + arrow->c);
cairo_line_to (cr, 0., 0.);
cairo_line_to (cr, -arrow->b, -w - arrow->c);
cairo_line_to (cr, -arrow->a, -w);
cairo_close_path (cr);
cairo_set_source_rgba (cr, GO_COLOR_TO_CAIRO (style->line.color));
cairo_fill (cr);
cairo_restore (cr);
if (l > 0.) {
(*endx) -= arrow->a * *endx / l;
(*endy) -= arrow->a * *endy / l;
} else
*endx = *endy = 0.;
break;
case GO_ARROW_OVAL:
cairo_save (cr);
cairo_translate (cr, *endx, *endy);
cairo_rotate (cr, phi);
cairo_scale (cr, arrow->a, arrow->b);
cairo_arc (cr, 0., 0., 1., 0., 2 * M_PI);
cairo_set_source_rgba (cr, GO_COLOR_TO_CAIRO (style->line.color));
cairo_fill (cr);
cairo_restore (cr);
break;
default:
g_assert_not_reached ();
}
}
开发者ID:UIKit0,项目名称:goffice,代码行数:48,代码来源:goc-line.c
示例10: cr_rotate
static VALUE
cr_rotate (VALUE self, VALUE radians)
{
cairo_rotate (_SELF, NUM2DBL (radians));
cr_check_status (_SELF);
return self;
}
开发者ID:exvayn,项目名称:cairo-1.8.1-i386,代码行数:7,代码来源:rb_cairo_context.c
示例11: do_wide_fills
static cairo_time_t
do_wide_fills (cairo_t *cr, int width, int height, int loops)
{
int count;
/* lots and lots of overlapping stroke-like fills */
state = 0xc0ffee;
for (count = 0; count < 1000; count++) {
cairo_save (cr);
cairo_translate (cr,
uniform_random (0, width),
uniform_random (0, height));
cairo_rotate (cr, uniform_random (-M_PI,M_PI));
cairo_rectangle (cr, 0, 0, uniform_random (0, width), 5);
cairo_restore (cr);
}
cairo_perf_timer_start ();
while (loops--)
cairo_fill_preserve (cr);
cairo_perf_timer_stop ();
cairo_new_path (cr);
return cairo_perf_timer_elapsed ();
}
开发者ID:AZed,项目名称:cairo,代码行数:28,代码来源:wide-fills.c
示例12: goc_component_draw
static void
goc_component_draw (GocItem const *item, cairo_t *cr)
{
GocComponent *component = GOC_COMPONENT (item);
GocCanvas *canvas = item->canvas;
double x0, y0 = component->y;
if (goc_canvas_get_direction (item->canvas) == GOC_DIRECTION_RTL) {
x0 = component->x + component->w;
goc_group_adjust_coords (item->parent, &x0, &y0);
x0 = canvas->width - (int) (x0 - canvas->scroll_x1);
} else {
x0 = component->x;
goc_group_adjust_coords (item->parent, &x0, &y0);
x0 = (int) (x0 - canvas->scroll_x1);
}
cairo_save (cr);
_goc_item_transform (item, cr, TRUE);
if (component->rotation == 0.)
cairo_translate (cr, x0,
(int) (y0 - canvas->scroll_y1));
else {
cairo_translate (cr, x0 + component->w / 2,
(int) (y0 - canvas->scroll_y1 + component->h / 2));
cairo_rotate (cr, -component->rotation);
cairo_translate (cr, -component->w / 2, -component->h / 2);
}
cairo_rectangle (cr, 0., 0., component->w,
component->h);
cairo_clip (cr);
go_component_render (component->component, cr,
component->w,
component->h);
cairo_restore (cr);
}
开发者ID:GNOME,项目名称:goffice,代码行数:34,代码来源:goc-component.c
示例13: renderSVGSymbolCairo
int renderSVGSymbolCairo(imageObj *img, double x, double y, symbolObj *symbol,
symbolStyleObj *style)
{
#ifdef USE_SVG_CAIRO
cairo_renderer *r = CAIRO_RENDERER(img);
//double ox=symbol->sizex*0.5,oy=symbol->sizey*0.5;
svg_cairo_status_t status;
struct svg_symbol_cache *cache;
msPreloadSVGSymbol(symbol);
assert(symbol->renderer_cache);
cache = symbol->renderer_cache;
cairo_save(r->cr);
cairo_translate(r->cr,x,y);
cairo_scale(r->cr,style->scale,style->scale);
if (style->rotation != 0) {
cairo_rotate(r->cr, -style->rotation);
cairo_translate (r->cr, -(int)(symbol->sizex/2), -(int)(symbol->sizey/2));
} else
cairo_translate (r->cr, -(int)(symbol->sizex/2), -(int)(symbol->sizey/2));
status = svg_cairo_render(cache->svgc, r->cr);
cairo_restore(r->cr);
return MS_SUCCESS;
#else
msSetError(MS_MISCERR, "SVG Symbols requested but is not built with libsvgcairo",
"renderSVGSymbolCairo()");
return MS_FAILURE;
#endif
}
开发者ID:embeepea,项目名称:mapserver,代码行数:34,代码来源:mapcairo.c
示例14: draw
static cairo_test_status_t
draw (cairo_t *cr, int width, int height)
{
cairo_pattern_t *source;
int surface_size = sqrt ((SIZE - 2*PAD)*(SIZE - 2*PAD)/2);
/* Use a gray (neutral) background, so we can spot if the backend pads
* with any other colour.
*/
cairo_set_source_rgb (cr, .5, .5, .5);
cairo_paint (cr);
cairo_translate(cr, SIZE/2, SIZE/2);
cairo_rotate (cr, M_PI / 4.0);
cairo_translate (cr, -surface_size/2, -surface_size/2);
source = create_image_source (surface_size);
cairo_pattern_set_filter (source, CAIRO_FILTER_NEAREST);
cairo_set_source(cr, source);
cairo_pattern_destroy (source);
cairo_paint (cr);
return CAIRO_TEST_SUCCESS;
}
开发者ID:499940913,项目名称:moon,代码行数:25,代码来源:rotate-image-surface-paint.c
示例15: cairo_rotate
void GraphicsContext::rotate(float radians)
{
if (paintingDisabled())
return;
cairo_rotate(m_data->cr, radians);
}
开发者ID:jackiekaon,项目名称:owb-mirror,代码行数:7,代码来源:GraphicsContextCairo.cpp
示例16: shapes
static void
shapes (cairo_t *cr)
{
cairo_set_source_rgb (cr, 1, 0, 0);
cairo_paint (cr);
cairo_set_source_rgb (cr, 0, 0.7, 0);
cairo_arc (cr, 10, 10, 7.5, 0, 2 * M_PI);
cairo_stroke (cr);
cairo_set_source_rgb (cr, 0, 0.7, 0.7);
cairo_arc (cr, 10, 10, 25, 0, 2 * M_PI);
cairo_stroke (cr);
cairo_rectangle (cr, -5, -5, 30, 30);
cairo_stroke (cr);
cairo_set_source_rgb (cr, 0.7, 0.7, 0);
cairo_save (cr);
cairo_translate (cr, 10, 10);
cairo_rotate (cr, M_PI/4);
cairo_translate (cr, -10, -10);
cairo_rectangle (cr, -5, -5, 30, 30);
cairo_stroke (cr);
cairo_restore (cr);
cairo_set_source_rgb (cr, 0.7, 0.0, 0.7);
cairo_move_to (cr, 15, -10);
cairo_line_to (cr, 30, 10);
cairo_line_to (cr, 15, 30);
cairo_stroke (cr);
}
开发者ID:ghub,项目名称:NVprSDK,代码行数:31,代码来源:clip-stroke.c
示例17: cairo_get_matrix
void address_histogram::render_bars(cairo_t *cr, const plot::bounds_t &bounds)
{
if(top_addrs.size() < 1 || top_addrs.at(0).count == 0) {
return;
}
cairo_matrix_t original_matrix;
cairo_get_matrix(cr, &original_matrix);
cairo_translate(cr, bounds.x, bounds.y);
double offset_unit = bounds.width / top_addrs.size();
double bar_width = offset_unit / bar_space_factor;
double space_width = offset_unit - bar_width;
uint64_t greatest = top_addrs.at(0).count;
int index = 0;
for(vector<iptree::addr_elem>::const_iterator it = top_addrs.begin();
it != top_addrs.end(); it++) {
double bar_height = (((double) it->count) / ((double) greatest)) * bounds.height;
if(bar_height > 0) {
// bar
double bar_x = index * offset_unit + space_width;
double bar_y = bounds.height - bar_height;
cairo_set_source_rgb(cr, bar_color.r, bar_color.g, bar_color.b);
cairo_rectangle(cr, bar_x, bar_y, bar_width, bar_height);
cairo_fill(cr);
// bar label
std::string label = it->str();
// IP6 labels are half size since they're (potentially) much longer
if(it->is4()) {
cairo_set_font_size(cr, bar_label_font_size);
}
else {
cairo_set_font_size(cr, bar_label_font_size / 2.0);
}
cairo_text_extents_t label_extents;
cairo_text_extents(cr, label.c_str(), &label_extents);
cairo_move_to(cr, bar_x + bar_width / 2.0, bar_y);
cairo_matrix_t unrotated_matrix;
cairo_get_matrix(cr, &unrotated_matrix);
cairo_rotate(cr, -M_PI / 4.0);
cairo_set_source_rgb(cr, 0.0, 0.0, 0.0);
cairo_show_text(cr, label.c_str());
cairo_set_matrix(cr, &unrotated_matrix);
}
index++;
}
cairo_set_matrix(cr, &original_matrix);
}
开发者ID:admckinnon,项目名称:tcpflow,代码行数:60,代码来源:address_histogram.cpp
示例18: draw_grid
static void
draw_grid (cairo_t *cr, cairo_pattern_t *pattern, int dst_x, int dst_y)
{
cairo_matrix_t m;
cairo_save (cr);
cairo_translate (cr, dst_x, dst_y);
cairo_scale (cr, 16, 16);
cairo_rotate (cr, 1);
cairo_matrix_init_translate (&m, 2560-4, 1280-4);
cairo_pattern_set_matrix (pattern, &m);
cairo_set_source (cr, pattern);
cairo_rectangle (cr, 0, 0, 4, 4);
cairo_fill (cr);
cairo_set_source_rgb (cr, .7, .7, .7);
cairo_set_line_width (cr, 1./16);
cairo_move_to (cr, 0, 0);
cairo_line_to (cr, 4, 0);
cairo_move_to (cr, 0, 2);
cairo_line_to (cr, 4, 2);
cairo_move_to (cr, 0, 4);
cairo_line_to (cr, 4, 4);
cairo_move_to (cr, 0, 0);
cairo_line_to (cr, 0, 4);
cairo_move_to (cr, 2, 0);
cairo_line_to (cr, 2, 4);
cairo_move_to (cr, 4, 0);
cairo_line_to (cr, 4, 4);
cairo_stroke (cr);
cairo_restore (cr);
}
开发者ID:AliYousuf,项目名称:cairo,代码行数:34,代码来源:scale-offset-similar.c
示例19: img_nordic_triangle_x
static void img_nordic_triangle_x(cairo_t* cr,
float val,
const float _xc, const float _yc,
const float _r2, const float scale) {
float c, s;
if (val < 0.00f) val = 0.00f;
if (val > 1.05f) val = 1.05f;
val = (val - 0.5f) * 1.5708f;
c = cosf (val);
s = sinf (val);
cairo_save(cr);
cairo_translate (cr, _xc + s * _r2, _yc - c * _r2);
cairo_rotate (cr, val);
cairo_move_to (cr, 0.0, 10.0 * scale);
cairo_line_to (cr, 6.9282 * scale, -2.0 * scale);
cairo_line_to (cr, -6.9282 * scale, -2.0 * scale);
cairo_close_path(cr);
cairo_set_line_width (cr, 1.2 * scale);
CairoSetSouerceRGBA(c_nrd);
cairo_fill_preserve (cr);
CairoSetSouerceRGBA(c_wht);
cairo_stroke (cr);
cairo_restore(cr);
}
开发者ID:EQ4,项目名称:meters.lv2,代码行数:26,代码来源:meterimage.c
示例20: cairo_image_surface_create
void *msCreateTileEllipseCairo(double width, double height, double angle,
colorObj *c, colorObj *bc, colorObj *oc, double ow) {
double s = (MS_MAX(width,height)+ow)*1.5;
cairo_surface_t *surface = cairo_image_surface_create (CAIRO_FORMAT_ARGB32,
s,s);
cairo_t *cr = cairo_create(surface);
//cairo_set_line_cap(cr, CAIRO_LINE_CAP_ROUND);
//cairo_set_line_join(cr, CAIRO_LINE_JOIN_ROUND);
if (bc && MS_VALID_COLOR(*bc)) {
msCairoSetSourceColor(cr, bc);
cairo_paint(cr);
}
cairo_save(cr);
cairo_translate(cr,s/2,s/2);
cairo_rotate(cr, -angle);
cairo_scale(cr, width/2,height/2);
cairo_arc(cr, 0, 0, 1, 0, 2 * MS_PI);
cairo_restore(cr);
if (c != NULL && MS_VALID_COLOR(*c)) {
msCairoSetSourceColor(cr, c);
cairo_fill_preserve(cr);
}
if (oc != NULL && MS_VALID_COLOR(*oc)) {
cairo_set_line_width(cr, ow);
msCairoSetSourceColor(cr, oc);
cairo_stroke_preserve(cr);
}
cairo_new_path(cr);
cairo_destroy(cr);
return surface;
}
开发者ID:msilex,项目名称:mapserver,代码行数:32,代码来源:mapcairo.c
注:本文中的cairo_rotate函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论