2016-11-19 4 views
1

Ich habe eine Tabelle mit Strukturen mit Polygon-Struktur, jede enthält eine Tabelle mit ~ 100 komplexen Zahlen.Iterieren durch Tabelle in C++?

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

Was ich tue, ist jedes Polygon mit der anderen unter Verwendung dt Interpolation von (Wich geht zwischen 0..1 und wenn es 1 erreicht es beginnt wieder bei 0), so bin ich mit dem Verfahren Interpolation zu tun und zeigt das Ergebnis (Morphing-Effekt):

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

Was ich bin klemme ich möchte einen Zyklus/interation zu schaffen, wie so T [0], T [1] ... T [1], T [2] ... T [2], T [3] und dann T [3], T [0] und weiter und weiter.

Gibt es eine Möglichkeit außer dem, was ich habe mit 2 Variablen x und y:

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

Weil es so viel mein Programm verlangsamt, dass die Animation zu stören sieht (aber es funktioniert), eine Idee zu verbessern?

Antwort

1

können Sie Summe MODULE

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

oder einfacher

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

die zweite Lösung ist stellar, ich habe versucht, so etwas zu verstehen, aber vergeblich, jetzt funktioniert es glatt und ziemlich gut, danke :) – DomainFlag

0

verwenden Sie können eine einzelne Variable und die andere berechnen. Die if ist OK, aber konventionell würde man die % Restoperation verwenden. Re

es verlangsamt mein Programm so viel

& hellip; Das ist eine falsche Analyse: Es ist etwas anderes, das Ihren Code verlangsamt.