gpt4 book ai didi

c++ - 在SDL 2中画一个圆,但是每个圆都占用CPU很多

转载 作者:行者123 更新时间:2023-11-28 06:22:44 24 4
gpt4 key购买 nike

我写了一个绘制实心圆的代码,但它占用了 CPU 很多。问题是我逐像素绘制,第一个半径为 n 的外圆,第二个半径为 n-1 的圆,依此类推,而 n 不等于 0。我在 e 循环中为每个圆部分绘制 4 个像素。正如我所想的那样,每个部分都有 ~ Pi/(2*R) 像素,但这还不够,圆圈填充错误,所以我使用 Pi/(4*R) 现在圆圈填充正常。

Deg0 = 0;
Deg90 = M_PI / 2;
DegStep = Deg90 / (R * 4);
CurrDeg = Deg0;
OffsetX = R;
OffsetY = 0;
TmpR = R;
while(TmpR>0 )
{
while(CurrDeg < Deg90)
{
OffsetX = cos(CurrDeg) * TmpR;
OffsetY = sin(CurrDeg) * TmpR;
SDL_RenderDrawPoint(Renderer, CX+(int)OffsetX, CY+(int)OffsetY);
SDL_RenderDrawPoint(Renderer, CX-(int)OffsetY, CY+(int)OffsetX);
SDL_RenderDrawPoint(Renderer, CX-(int)OffsetX, CY-(int)OffsetY);
SDL_RenderDrawPoint(Renderer, CX+(int)OffsetY, CY-(int)OffsetX);
CurrDeg+=DegStep;
}
CurrDeg = Deg0;
TmpR-=1;
}

那么,有什么方法可以提高我的觉悟吗?

最佳答案

您可以使用 SDL 的圆形绘制功能,或者您可以通过不实际使用 cos 和 sin 来优化您自己的代码。请改用查找表。

关于c++ - 在SDL 2中画一个圆,但是每个圆都占用CPU很多,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29062213/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com