如何繪製不同的形狀(除了矩形和線條)並在C++中使用SDL2填充它們?我嘗試過使用SDL2_gfx,但我無法獲得SDL2_gfx編譯,所以我沒試過。我發現了一個已編譯的SDL_gfx,但由於我使用渲染器而不是曲面,所以無法使用它。繪製多邊形很簡單,我可以計算點和繪製線條,但是如何填充它們?我如何繪製圓圈?SDL2繪製和填充形狀
如果任何人有編譯好的SDL2_gfx(和SDL2_ttf和SDL2_image一樣),那麼也許你可以把它發給我?
謝謝你的幫助:)!
如何繪製不同的形狀(除了矩形和線條)並在C++中使用SDL2填充它們?我嘗試過使用SDL2_gfx,但我無法獲得SDL2_gfx編譯,所以我沒試過。我發現了一個已編譯的SDL_gfx,但由於我使用渲染器而不是曲面,所以無法使用它。繪製多邊形很簡單,我可以計算點和繪製線條,但是如何填充它們?我如何繪製圓圈?SDL2繪製和填充形狀
如果任何人有編譯好的SDL2_gfx(和SDL2_ttf和SDL2_image一樣),那麼也許你可以把它發給我?
謝謝你的幫助:)!
如果你想填補一個多邊形快速谷歌搜索給出了一個有效的算法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的源文件直接放到你的項目中嗎?只有四個文件可放入項目的子文件夾中。
我可能會把源文件放在我的項目下。而且所有的SDL2源代碼我都是開源的,所以我將在SDL或SDL-gfx的主頁上發佈,或者您可以在那裏找到源代碼,您可以查看代碼。爲了好奇,我研究了SDL2填充矩形函數,但最後我不明白髮生了什麼。我迷失在彙編部分和大量宏之間的某處。 –
你說SDL2_gfx的編譯版本不適合你。你爲什麼認爲如果別人編譯它,它會起作用? – HolyBlackCat
我說我無法編譯SDL2_gfx。這意味着我無法嘗試SDL2_gfx。但是,謝謝我將修復我的帖子,因爲它似乎有點太模糊 –
要[畫一個圓圈](https://en.wikipedia.org/wiki/Midpoint_circle_algorithm)。爲了填充形狀,每像素可以做到這一點,但效率非常低。您最好花時間編譯SDL2_gfx並獲得錯誤幫助。 – coyotte508