[OpenGL] Animacja wahadła - Funkcja rysująca - zmienne globalne?


#1

Witam.

Stawiam pierwsze kroki w OpenGL i mam problem. Otóż Mam napisany ogromny program do sterowania wahadłem i konstrukcja tego programu wyglada tak:

for (int i = 0; i < k; i++)
{
	sm(n, czas, dt, x, u, m, A, B, RHS);			

	LQR(K, A, B, Q, R, n, m);			

	multiplication(C, K, 0, x, 0, m, n, 1);			

	for (int i = 0; i < m; i++)	u[i] = -C[i];		

	RK45(n, czas, dt, x, u, m, RHS);			

	theta_w[i + 1] = x[0];					

	w_w[i + 1] = x[1];

	t_w[i + 1] = *t;


}

Program wyznacza w kolejnych chwilach czasu kąt theta i predkość kątową w. Wyniki są zapisywane do tablic theta_w i w_w. Chciałbym teraz aby pokazać ruch wahadła i tu zaczyna się problem.

To jest szkielet mojej w funkcji w openGL:

glutInit(&iArgc, cppArgv);

glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);

glutInitWindowSize(500, 500);

glutInitWindowPosition(0, 0);

glutCreateWindow("Wahadlo");

glutDisplayFunc(Draw);

glutMainLoop();

Z tego co rozumiem muszę wszystkie operacje obliczeń wstawić do funkcji Draw. Tylko tu się pojawia problem. Funkcja Draw nie przyjmuje żadnych argumentów, a ja u siebie w programie mam ogrom tablic i zmiennych. Musiałbym je zadeklarować jako zmienne globalne a tego wolałbym uniknąć.

Może ktoś zna się na temacie i potrafiłby mi przybliżyć jak należy rozwiązać ten problem?