SDL2 绘制和填充形状
SDL2 draw and fill shapes
如何在 C++ 中使用 SDL2 绘制不同的形状(矩形和线条除外)并填充它们?我尝试使用 SDL2_gfx,但无法编译 SDL2_gfx,因此无法尝试。我找到了一个已编译的 SDL_gfx,但由于我使用的是渲染器而不是表面,所以我无法使用它。画多边形很简单,算点画线就可以了,但是怎么填充呢?我该如何画圆圈?
如果有人有已编译的 SDL2_gfx(与 SDL2_ttf 和 SDL2_image 相同)那么也许您可以将它发送给我?
如果您想填充一个多边形,快速 google 搜索可提供有效的算法 here。或者复制方式 SDL2_gfx 是可能的,因为您可以访问源代码?
要画一个圆,the Midpoint Circle algorithm甚至给出了一些代码:
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的源文件放到你的项目里不行吗?只有四个文件可以放在项目的子文件夹中。
如何在 C++ 中使用 SDL2 绘制不同的形状(矩形和线条除外)并填充它们?我尝试使用 SDL2_gfx,但无法编译 SDL2_gfx,因此无法尝试。我找到了一个已编译的 SDL_gfx,但由于我使用的是渲染器而不是表面,所以我无法使用它。画多边形很简单,算点画线就可以了,但是怎么填充呢?我该如何画圆圈?
如果有人有已编译的 SDL2_gfx(与 SDL2_ttf 和 SDL2_image 相同)那么也许您可以将它发送给我?
如果您想填充一个多边形,快速 google 搜索可提供有效的算法 here。或者复制方式 SDL2_gfx 是可能的,因为您可以访问源代码?
要画一个圆,the Midpoint Circle algorithm甚至给出了一些代码:
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的源文件放到你的项目里不行吗?只有四个文件可以放在项目的子文件夹中。