<分区>
我是 C++ 的新手,但我觉得这门语言还不错。作为一个学习项目,我决定制作一个小型 2D 图形引擎。这似乎是一个艰巨的项目,但我很清楚如何继续前进。
我还没有真正开始,但是当我遇到这个问题时,此刻我正在脑海中形成一些东西: 在某些时候,我将不得不创建一个在屏幕上绘制圆圈的功能。我现在的做法是这样的:
in a square with sides from (x-r) to (x+r) loop through x and y,
if at each point, the current distance sqr(x^2+y^2) is less than or equal to r
, then draw a pixel at that point.
这行得通,如果行不通,请不要告诉我,我会想办法的。如果 x+r & y+r 在屏幕上,我当然只会画这个圆圈。
问题在于有时我需要画很大的圆圈。例如,如果我需要绘制一个半径为 5000 的圆,(如果像素循环计算需要总共循环 10000^2 次)。因此,对于 2Ghz 的处理器,这个单个圆圈只能渲染 2Ghz/(10000^2),即 ~22 次/秒,同时占用整个核心(相信每个像素只需要一次计算,这是无处可寻的)真相)。
现在哪种方法是正确的?我想这与使用 GFX 进行这些简单计算有关。如果是这样,我可以为此使用 C++ 的 OpenGL 吗?我也想学:)