在c++中迭代表?

问题描述 投票:0回答:2

我有一个表,其中的结构包含多边形结构,每个表都包含一个包含约 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);

因为它使我的程序速度减慢太多,以至于动画看起来令人不安(但它有效),有什么改进的想法吗?

c++
2个回答
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);

0
投票

您可以使用一个变量并计算另一个变量。

if
没问题,但更传统的是使用
%
余数运算。回复

它让我的程序变慢了很多

…这是一个不正确的分析:它是其他东西会减慢你的代码。

© www.soinside.com 2019 - 2024. All rights reserved.