Errata zu

C++ mit dem Borland C++Builder 2007

Einführung in den C++-Standard und die objektorientierte Windows-Programmierung

Springer-Verlag, Berlin Heidelberg; ISBN: 3-540-62994-7

1211 S. Mit CD-ROM.
 


15.11.2008 17:02


Guten Tag Herr Kaiser,


ich möchte Sie auf einen kleinen Bug in Ihrer OpenGL Programmierung hinweisen.

Wenn Sie ein Fenster mit der Mouse verkleinern, kriegen Sie bei dieser Zeile

GLdouble aspect =(double)ClientWidth/ClientHeight;

einen Divison durch Null Fehler (FormResize)

ein kleines + 1 hilft (siehe unten)

Ihre Routine, leicht angepasst.

void __fastcall TForm9::FormResize(TObject *Sender)
{

glViewport(0, 0, ClientWidth, ClientHeight);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
GLdouble aspect =(double)ClientWidth/(ClientHeight+1);
// viewing angle 60°, aspect=Width/Height, für z<1 und z>10 ausblenden:
gluPerspective(60, aspect, 0.1, 100);
// make the modelview matrix the actual matrix
glMatrixMode(GL_MODELVIEW);
}

Grüsse

Karl-Heinz Reng
Reng-EDV