在c ++中迭代表?

时间:2016-11-19 12:03:34

标签: c++

我有一个包含多边形结构的结构的表,每个结构都包含一个包含~100个复数的表。

initPoly1(T[0]);
     ...
initPoly4(T[3]);

我正在做的是使用dt在另一个中插入每个多边形(在0..1之间,当它达到1时,它再次以0开始),所以我使用该过程进行插值并显示结果(变形效果):

animer(T[indice], T[indice+1], dt);

我遇到的是我想创建一个循环/交互,就像这样 T [0],T [1] ... T [1],T [2] ... T [2],T [3],然后 T [3],T [0] 等等。

除了我使用2个变量x和y所做的事情之外还有什么方法:

if(dt == 1.0)
{
    x++;
    t++;
    if(t==4)
    {
        t=0;
    }
    else if(x==4)
    {
        x=0;
    }
}
animer(T[x], T[t], dt);

因为它让我的程序变得如此之慢,以至于动画看起来令人不安(但它有效),还有什么改进的想法?

2 个答案:

答案 0 :(得分:1)

你可以使用sum MODULE

    if(dt == 1.0)
    {
      x = (x+1)%4;
      t= (t+1)%4;
    }
    animer(T[x], T[t], dt);

或更简单

if(dt == 1.0)
{
  x = (x+1)%4;
}
animer(T[x], T[(x+1)%4], dt);

答案 1 :(得分:0)

您可以使用单个变量并计算另一个变量。 if没问题,但更常规的是使用%余数操作。重

  

这会让我的节目变得太慢

...这是一个错误的分析:它会减慢您的代码。