如何在C ++中以递增的顺序绘制球体网格?

时间:2017-09-24 01:29:58

标签: c++ opengl graphics

Grid of images

我一直试图以递增的半径顺序绘制一个球体网格(上面的图像链接)但是我尝试过的所有循环都失败了。我在下面做了一个循环,因为我想到x的一个值,y值递增并完全绘制,然后x递增,整个过程重复。但那不起作用。我应该做些什么改变?

'一个'是属于类的变量,包含球体的坐标和半径。

a.x = -500, a.y = -500, a.z = 0, a.r=0;

for (int i = 0; i < 500; i++, a.x += 30, a.r++)
    for (int j = 0; j < 10; j++, a.y += 30, a.r++)
        drawSphere(a.x + (2 * a.r), a.y, a.z, a.r);

1 个答案:

答案 0 :(得分:1)

导出值而不是试图操纵某种计数器:

for (int i = 0; i < 500; i++)
  for (int j = 0; j < 10; j++)
    drawSphere(a.x + i * 30, a.y + j * 30, a.z, a.r + i + j);

“作为函数”是一个数学术语,意味着您需要的x的最终值可以从a.xi值计算,不需要其他输入。这是有效的:

x = a.x + i * 30