What's wrong with this code

Started by
2 comments, last by nraiyani 23 years, 9 months ago
//****************************************************** GLfloat x,y,z,angle; glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glLoadIdentity(); glPushMatrix(); glRotatef(xRot, 1.0f, 0.0f, 0.0f); glRotatef(yRot, 0.0f, 1.0f, 0.0f); // Call only once for all remaining points glBegin(GL_LINE_STRIP); z = -50.0f; for(angle = 0.0f; angle <= (2.0f*GL_PI)*3.0f; angle += 0.1f) { x = 50.0f*sin(angle); y = 50.0f*cos(angle); // Specify the point and move the Z value up a little glVertex3f(x, y, z); z += 0.5f; } // Done drawing points glEnd(); // Restore transformations glPopMatrix(); glFinish(); SwapBuffers(wglGetCurrentDC()); //-------------------------------------------------------- If Nothing is wrong why do i get the following error ----> EZeroDivide with ''Floating point division by zero''. Any though will be Appreciated.
42
Advertisement
There is no division so the problem is not explicit in the code.

I had some problem with
SwapBuffers(wglGetCurrentDC());
(OpenGL-Win32 does not work )

Try to GetDC when you create the window and then use the same HDC and use it every time you swap buffers...

// create window and setup OpenGL
...
HDC hDC;
...
hDC = GetDC(hwnd); // hwnd is your window handle
...


// rendering loop
...
SwapBuffers(hDC);
...

It seems strange but on my system is not the same thing!

IpSeDiXiT
That''s what i did, i keep getting the same error at

// Specify the point and move the Z value up a little
glVertex3f(x, y, z);
z += 0.5f; <-----This Line

42
Now I don''t know anything about OpenGl, but what does the vertexing function do?

Because you are starting Z at a negative value, so eventually it''ll probably reach 0. Just put in something like..

z += 0.5f;
if (z==0) z=0.5f;

See if that fixes it.
-Tim Elliot (Demitri)

This topic is closed to new replies.

Advertisement