我正在尝试在开罗画一个数字,但是我看到的唯一方法是执行以下步骤:
void dibuje(cairo_t * cr,int numero){
cairo_text_extents_t范围;
char * ut =“ 22”;
cairo_set_source_rgb(cr,0,0,0);
cairo_select_font_face(cr,“ Sans”,CAIRO_FONT_SLANT_NORMAL,CAIRO_FONT_WEIGHT_NORMAL);
cairo_set_font_size(cr,12.0);
cairo_text_extents(cr,ut,&extents);
cairo_move_to(cr,300,300);
cairo_show_text(cr,ut);
}
那样,我只画“ 22”,但是我想画每个参数收到的数字,另一种解决方法是将该数字转换为char *,但是,我不知道怎么做< / p>
答案 0 :(得分:1)
WeatherVane的解决方案:您需要使用sprintf而不是cairo_text_extends,如下所示:
void dibuje_numero(cairo_t *cr, int numero, int posx, int posy){
cairo_move_to(cr, posx, posy);
sprintf(buffer, "%d", numero);
cairo_show_text(cr, buffer);
}