使用cairo绘制图形的部分函数总结
2010-11-03 16:15
288 查看
一 绘制文本
二 绘制线段
三 绘制矩形
四 绘制圆形
五 绘制弧线
六 绘制椭圆
//设置源的颜色 cairo_set_source_rgb(cr,0.627,0,0); //选择字体类型或尺寸 cairo_select_font_face(cr,"Adobe Heiti Std",CAIRO_FONT_SLANT_NORMAL,CAIRO_FONT_WEIGHT_NORMAL); cairo_set_font_size(cr,24); //从图像区域的(40.0,64.0)开始绘制 cairo_move_to(cr,40.0,64.0); //使用show_text cairo_show_text(cr,"Hello Cairo!");
二 绘制线段
cairo_t *cr; //生成环境 cr = gdk_cairo_create(widget->window); //设置线段颜色和粗细 cairo_set_source_rgb(cr,0,0,0); cairo_set_line_width(cr,0.5); //count保存左键点击的次数,即数组内保存的点的坐标数 //从第一个点开始,每个点依次与其它点绘制一条线段(实际上绘制了两条) //cairo_move_to和cairo_line_to在cr中定义了绘图路径 int i,j; for(i = 0;i <= count-1;i++) { for(j = 0;j <= count-1;j++) { cairo_move_to(cr,coordx[i],coordy[i]); cairo_line_to(cr,coordx[j],coordy[j]); } } count = 0; //cairo_stroke将cr中的路径绘制出来(与显示文本的cairo_show_text不同) cairo_stroke(cr); cairo_destroy(cr);
三 绘制矩形
cairo_t *cr; cr = gdk_cairo_create(widget->window); cairo_set_source_rgb(cr,0,0,0); cairo_set_line_width(cr,1); //绘制一个矩形,起点是20 20,长120,宽80 cairo_rectangle(cr,20,20,120,80); //绘制一个正方形,是矩形的特例,长宽相等 cairo_rectangle(cr,180,20,80,80); //绘制边线,且保留路径 cairo_stroke_preserve(cr); cairo_set_source_rgb(cr,0,0,1); //填充,且清除路径 cairo_fill(cr);
四 绘制圆形
cairo_t *cr; cr = gdk_cairo_create(widget->window); int width,height; gtk_window_get_size(GTK_WINDOW(widget),&width,&height); cairo_set_line_width(cr,9); cairo_set_source_rgb(cr,0.69,0.19,0); //描绘圆的轮廓,圆心是width/2,height/2,半径为宽和高较小的那个的一半再减10 //起始角为0,终止角为360 //注意,这实际上是绘制一条弧线。 cairo_arc(cr,width/2,height/2,(width < height ? width:height)/2 - 10,0,2 * M_PI); //cairo_stroke_preserve () 函数会将它绘制的路径依然保存在 cairo 环境中, //而 cairo_stroke () 所绘制的路径,在绘制完成后,就从 cairo的环境中清除了 cairo_stroke_preserve(cr); cairo_set_source_rgb(cr,0.3,0.4,0.6); //对使用 cairo_stroke_preserve () 函数绘制的路径进行蓝色填充。 //若上面使用cairo_stroke,则不填冲,因为stroke在绘制完路径后,就清除了,所以 //fill无法填充。 cairo_fill(cr); cairo_destroy(cr);
五 绘制弧线
cairo_set_source_rgb(cr,0,0,0); //注意,这里的M_PI/4是指起点是M_PI/4的半径与弧的交点 cairo_arc(cr,90,160,40,M_PI / 4,M_PI); //该圆弧并不是封闭的,只转过了180度,可以用close封闭它 cairo_close_path(cr); cairo_stroke_preserve(cr); cairo_set_source_rgb(cr,1,1,1); cairo_fill(cr);
六 绘制椭圆
cairo_set_source_rgb(cr,0,0,0); //cairo_translate() 函数可通过平移用于空间的原点来修改当前的变换矩阵 cairo_translate(cr,220,180); //设定椭圆长轴和短轴的比例 cairo_scale(cr,1,0.7); cairo_arc(cr,200,180,50,0,2*M_PI); cairo_stroke_preserve(cr); cairo_set_source_rgb(cr,1,1,1); cairo_fill(cr);
相关文章推荐
- 使用cairo绘制图形的部分函数总结
- 使用cairo绘制图形的部分函数总结
- Symbian编程总结-图形图像篇-使用双缓存进行图形的绘制
- 【Android】PorterDuffXfermode使用(通过消除背景层与重叠部分绘制组合图形)
- 【其他部分 第二章 C语言图形和函数图像的绘制】
- 调试经验——使用Matlab绘制f(x)=sin(1/x)的函数图形
- 汇编总结-第二部分_3_使用函数
- 【续集】 C语言图形和函数图像的绘制【其他部分 第二章】
- GDI基础函数使用绘制线条和图形
- Opencv 中图形绘制函数 rectangle函数的使用
- 数学建模常用Matlab/Lingo/c代码总结系列——Matlab图形绘制函数汇总
- Symbian编程总结-图形图像篇-使用双缓存进行图形的绘制
- Symbian编程总结-图形图像篇-使用双缓存进行图形的绘制
- 在Dreamweaver下创建一个php文件并用正确使用php“绘图函数”进行绘制图形时,图形却无法显示
- 【JAVA语言程序设计基础篇】--图形-- 使用抽象方法绘制函数图形
- c语言getchar()函数使用总结
- PM使用总结(部分转)
- Android之图形图像之使用Path类总结
- C++ 有关于函数对象以及谓词部分练习以及知识点的总结
- C和指针之数组和函数部分总结