cairo画一个点的sample代码
时间: 2023-07-09 14:50:41 浏览: 128
下面是使用 Cairo 绘制一个点的示例代码:
```c
#include <cairo.h>
int main()
{
// 创建 Cairo 绘图上下文
cairo_surface_t* surface = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, 640, 480);
cairo_t* cr = cairo_create(surface);
// 设置点的坐标和大小
double x = 100.0;
double y = 200.0;
double size = 5.0;
// 绘制一个点
cairo_rectangle(cr, x, y, size, size);
cairo_fill(cr);
// 保存图像到文件
cairo_surface_write_to_png(surface, "point.png");
// 释放资源
cairo_destroy(cr);
cairo_surface_destroy(surface);
return 0;
}
```
这段代码创建了一个大小为 640x480 的 Cairo 图像表面,并在其中绘制了一个坐标为 (100, 200)、大小为 5x5 的点,然后将图像保存为 PNG 格式的文件 "point.png"。如果你想要绘制其他形状,可以使用 Cairo 提供的其他绘制函数。
相关问题
cairo绘制圆点的sample代码
下面是cairo绘制圆点的示例代码:
```
#include <cairo.h>
int main(int argc, char *argv[]) {
cairo_surface_t *surface;
cairo_t *cr;
/* 创建绘图表面 */
surface = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, 256, 256);
/* 创建 cairo 绘图上下文 */
cr = cairo_create(surface);
/* 移动绘制点到圆心 */
cairo_move_to(cr, 128.0, 128.0);
/* 设置圆形的半径 */
double radius = 50.0;
/* 绘制圆形 */
cairo_arc(cr, 128.0, 128.0, radius, 0.0, 2 * M_PI);
/* 设置圆形的填充颜色 */
cairo_set_source_rgb(cr, 0.5, 0.5, 0.5);
/* 填充圆形 */
cairo_fill(cr);
/* 销毁 cairo 绘图上下文 */
cairo_destroy(cr);
/* 保存绘制结果到文件 */
cairo_surface_write_to_png(surface, "circle.png");
/* 销毁绘图表面 */
cairo_surface_destroy(surface);
return 0;
}
```
这段代码使用cairo绘制了一个半径为50的灰色圆点,并将绘制结果保存为PNG格式的文件。其中,cairo_arc函数用于绘制圆形,cairo_set_source_rgb函数用于设置填充颜色,cairo_fill函数用于填充圆形。
cairo背景显示比例尺的sample代码
以下是一个示例代码,用于在 Cairo 中绘制一个背景,并显示比例尺。在这个示例中,我们将绘制一个灰色的背景,并在左下角显示一个比例尺,用于表示绘图中对象的大小。请注意,这只是一个简单的示例,你可以根据自己的需求进行修改。
```c
#include <cairo.h>
int main()
{
cairo_surface_t *surface;
cairo_t *cr;
// 创建画布
surface = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, 640, 480);
cr = cairo_create(surface);
// 绘制背景
cairo_set_source_rgb(cr, 0.5, 0.5, 0.5);
cairo_paint(cr);
// 绘制比例尺
cairo_set_source_rgb(cr, 1, 1, 1);
cairo_move_to(cr, 10, 470);
cairo_line_to(cr, 110, 470);
cairo_stroke(cr);
cairo_move_to(cr, 10, 465);
cairo_show_text(cr, "0");
cairo_move_to(cr, 100, 465);
cairo_show_text(cr, "1");
cairo_move_to(cr, 60, 460);
cairo_line_to(cr, 60, 475);
cairo_stroke(cr);
cairo_move_to(cr, 10, 475);
cairo_show_text(cr, "0");
cairo_move_to(cr, 60, 475);
cairo_show_text(cr, "1 unit");
// 结束绘制
cairo_surface_write_to_png(surface, "background.png");
cairo_destroy(cr);
cairo_surface_destroy(surface);
return 0;
}
```
在这个示例中,我们使用了 cairo_image_surface_create() 函数创建了一个大小为 640x480 像素的画布,然后使用 cairo_paint() 函数将其填充为灰色。接下来,我们使用 cairo_set_source_rgb() 函数设置绘图的颜色为白色,使用 cairo_move_to() 和 cairo_line_to() 函数绘制了一个长度为 100 像素的比例尺,并使用 cairo_stroke() 函数绘制了比例尺的边框。最后,我们使用 cairo_show_text() 函数在比例尺的两端分别标注了 0 和 1,以及比例尺的单位。最后,我们使用 cairo_surface_write_to_png() 函数将绘制好的背景保存为 PNG 格式的图片。
阅读全文