Witajcie

Mam pytanie dotyczące OpenGL. Mianowicie mam zrobioną scenę na TPanelu w OpenGL. Na scenie wyświetlam zestaw punktów i umożliwiam użytkownikowi robienie obrotu i zooma względem punktu 0,0,0 (x,y,z). Dzięki czemu zestaw punktów może być dowolnie obrócony. W punkcie 0,0,0 (x,y,z) mam również na sztywno (niezależnie od tego co user rysuje) narysowane kolorowe osie wyznaczające kierunki X, Y, Z

procedure RysujOsie(const rozmiar :Single);
begin
  glBegin(GL_LINES);
    glColor3ub(255,0,0);
    glVertex3f(0,0,0); glVertex3f(rozmiar,0,0); //OX, w prawo
    glColor3ub(0,255,0);
    glVertex3f(0,0,0); glVertex3f(0,rozmiar,0); //OY, do gory
    glColor3ub(0,0,255);
    glVertex3f(0,0,0); glVertex3f(0,0,rozmiar); //OZ, w glab
  glEnd;
end;

Wszystko super bo przy obrocie osie wraz z obrazem się obracają ale gdy obraz nachodzi na punkty 0,0,0 to zaczyna się to zlewać.

Pomyślałem zatem, że odsunę sobie moje kolorowe osie np o 500 punktów względem X i Y. No i super też się udało ale w przypadku gdy user zaczyna robić zoom lub obracać to moje linie zaczynają znikać (bo np zoom jest taki, że punktu 500,500 nie ma na scenie).

Pytanie do was jak zrobić aby bez względu na zoom , obrót moje kolorowe linie znajdowały się np zawsze w lewym górnym rogu sceny?

Zoom robię tak:

gluLookAt(0,0,KameraZ, 0,0,0, 0,1,0);

Obrót robię tak:

glRotatef(Theta, 1.0, 0.0, 0.0); //wokol OX
  glRotatef(Phi, 0.0, 1.0, 0.0); //wokol OY