作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
<分区>
我是 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 吗?我也想学:)
我需要用这样的数据构建一个表: ┌────────┬───────────┬────────┐ │ ID │ Name │ Age │ ├────
我是一名优秀的程序员,十分优秀!