SDL2 绘制和填充形状

SDL2 draw and fill shapes

本文关键字:填充 绘制 SDL2      更新时间:2023-10-16

如何绘制不同的形状(矩形和线条除外)并在C++中使用 SDL2 填充它们?我尝试使用SDL2_gfx,但我无法编译SDL2_gfx,所以我无法尝试。我找到了一个编译SDL_gfx但由于我使用的是渲染器而不是表面,所以我无法使用它。绘制多边形很简单,我只需计算点并绘制线条,但是如何填充它们?我怎么画圆?

如果有人有编译SDL2_gfx(与SDL2_ttf和SDL2_image相同),那么也许您可以将其发送给我?

如果你想填充一个多边形,一个快速的谷歌搜索在这里提供了一个有效的算法。或者复制SDL2_gfx方式,因为您可以访问源代码?

为了画一个圆,有中点圆算法,甚至给出了一些代码:

void DrawCircle(int x0, int y0, int radius)
{
    int x = 0, y = radius;
    int dp = 1 - radius;
    do
    {
        if (dp < 0)
            dp = dp + 2 * (++x) + 3;
        else
            dp = dp + 2 * (++x) - 2 * (--y) + 5;
        putpixel(x0 + x, y0 + y, 15);     //For the 8 octants
        putpixel(x0 - x, y0 + y, 15);
        putpixel(x0 + x, y0 - y, 15);
        putpixel(x0 - x, y0 - y, 15);
        putpixel(x0 + y, y0 + x, 15);
        putpixel(x0 - y, y0 + x, 15);
        putpixel(x0 + y, y0 - x, 15);
        putpixel(x0 - y, y0 - x, 15);
    } while (x < y);
}

但真正应该做的是寻求帮助来解决编译SDL2_gfx的问题。最坏的情况是,你不能直接把SDL2_gfx的源文件放在你的项目中吗?只有四个文件可以放在项目的子文件夹中。