C/CPLUS

C语言使用Cairo实现形状相交效果

2022-03-15  本文已影响0人  一路向后

1.源码实现

#include <stdio.h>
#include <cairo/cairo.h>

#define M_PI 3.141592654

int main()
{
    cairo_surface_t *surface;
    cairo_t *cr;

    surface = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, 300, 300);
    cr = cairo_create(surface);

    cairo_set_source_rgb(cr, 0, 1, 0);
    cairo_arc(cr, 100, 150, 80, 0, 2 * M_PI);
    cairo_fill(cr);

    cairo_set_operator(cr, CAIRO_OPERATOR_IN);
    /*cairo_set_operator(cr, CAIRO_OPERATOR_DEST_IN);*/

    cairo_set_source_rgb(cr, 1, 1, 0);
    cairo_arc(cr, 200, 150, 80, 0, 2 * M_PI);
    cairo_fill(cr);

    cairo_surface_write_to_png(surface, "a.png");

    cairo_surface_destroy(surface);
    cairo_destroy(cr);

    return 0;
}

2.编译源码

$ gcc -o test test.c -lcairo

3.运行程序

$ ./test

4.结果展示

a.png
上一篇 下一篇

猜你喜欢

热点阅读