我有一个表,其中的结构包含多边形结构,每个表都包含一个包含约 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);
因为它使我的程序速度减慢太多,以至于动画看起来令人不安(但它有效),有什么改进的想法吗?
你可以使用 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);
您可以使用一个变量并计算另一个变量。
if
没问题,但更传统的是使用 %
余数运算。回复
” 它让我的程序变慢了很多
…这是一个不正确的分析:它是其他东西会减慢你的代码。