Moebius Strip

Hi

I’d like to draw a Moebius-Strip. But I got several problems in doing so. I had the following idea: slowly rotateing the line around the center and in parallel I try to describe a circle with the center of the line (y-rotation). If I use the opengl functions there is no problem with that. But how do I get the rotated and translated start and end coordinates of the line? I need the coords as input for the quadstrip that I want to draw. Tips and tricks are welcome. :slight_smile:

PS: If someone got some code on this topic, maybe I could read it and hopefully get the “aha”-effect. :wink:

PPS: I have to apologize for my english, its not my native language. :slight_smile:

I tried it in another way. Some code.

 glBegin(GL_POINTS);

	for(a = 0; a < 2*PI; a += 0.2)
	{

		for(r = -1; r <= 1; r += 0.1)
		{

				p1.x = cos(a)* ( 1+ (r/2 * cos(a/2)) );
				p1.y = sin(a)* ( 1+ (r/2 * cos(a/2)) );
				p1.z = r/2 *sin(a/2);

				glVertex3f(p1.x, p1.y, p1.z);

		}
	}
	glEnd(); 

This works fine, I’m using a mathematical description of what I want to draw. Here the problem is, its drawn as point set. I tried to set the variable r fix and deleting the inner loop, but then there only appears a “circle” nothing more…I mistook something with the math. My thoughts were, if I set the r to -1 and 1 I’ll get the max and min point for one line, but that seems to be wrong… Hope someone can correct me.

glBegin(GL_POINTS);

	for(a = 0; a < 2*PI; a += 0.2)
	{


				p1.x = cos(a)* ( 1+ (-1/2 * cos(a/2)) );
				p1.y = sin(a)* ( 1+ (-1/2 * cos(a/2)) );
				p1.z = -1/2 *sin(a/2);

				glVertex3f(p1.x, p1.y, p1.z);

				p2.x = cos(a)* ( 1+ (1/2 * cos(a/2)) );
				p2.y = sin(a)* ( 1+ (1/2 * cos(a/2)) );
				p2.z = 1/2 *sin(a/2);

				glVertex3f(p2.x, p2.y, p2.z);

		
	}
	glEnd();  

ah lol i got it :wink: my compiler did “integer division” instead of floatingpoint division :slight_smile: