如何使用开罗绘制带有左上角和右下角的矩形?

问题描述 投票:1回答:1

我尝试使用开罗绘制一个矩形,其左上角和右下角切角,类似于Qt徽标。

这是我想要的:enter image description here这是我得到的:

enter image description here

这里是代码:

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

int main()
{
    double height = 500, width = 250;

    cairo_surface_t *surface = cairo_image_surface_create (CAIRO_FORMAT_ARGB32, 500, 500);
    cairo_t *cr = cairo_create (surface);

    cairo_move_to(cr,0,0);
    cairo_line_to(cr,width,0);
    cairo_line_to(cr,width,height - height/4);
    cairo_line_to(cr,width - height/4,height);
    cairo_line_to(cr,0,height);

    cairo_set_line_width (cr, 10.0);
    cairo_set_line_cap (cr, CAIRO_LINE_CAP_ROUND);
    cairo_stroke (cr);

    cairo_destroy (cr);
    cairo_surface_write_to_png (surface, "hello.png");
    cairo_surface_destroy (surface);

    return 0;
}

我没有得到想要的结果,有人可以给小费吗?无论我采用哪种编程语言。

c math drawing cairo pycairo
1个回答
0
投票

使用更新后的形状,您只是错过了第一笔画。其余的笔划需要相应地向右移动。

cairo_move_to(cr, 0, height/4);
cairo_line_to(cr, height/4, 0);
cairo_line_to(cr, width + height/4, 0);
cairo_line_to(cr, width + height/4, height - height/4);
cairo_line_to(cr, width, height);
cairo_line_to(cr, height/4,height);
© www.soinside.com 2019 - 2024. All rights reserved.