-
johnjar © (08.04.11 17:28)
Здравствуйте, Только что столкнулся с большой проблемой : немогу с помощью OpenGL нарисовать линию или точку многоугольники при этом отрисовываются нормально. Просмотрел множество сайтов, код оттуда копировал - ничего не помогло
glClearColor(1,1,1,1); glClear(GL_COLOR_BUFFER_BIT or GL_DEPTH_BUFFER_BIT) ; glLoadIdentity; glPointSize(15); glLineWidth(3); glBegin(GL_LINES); glColor3d(1,0,0); glVertex3d(-4.5,3,0); // первая линия glVertex3d(-3,3,0); glColor3d(0,1,0); glVertex3d(-3,3.3,0); // вторая линия glVertex3d(-4,3.4,0); glEnd();
glLineWidth(3);
glBegin(GL_LINE_STRIP); glColor3d(1,0,0); glVertex3d(-2.7,3,0); glVertex3d(-1,3,0); glColor3d(0,1,0); glVertex3d(-1.5,3.3,0); glColor3d(0,0,1); glVertex3d(-1,3.5,0); glEnd();
SwapBuffers(DC); <Цитата>
johnjar © (08.04.11 17:30) [1]
Причем такой код работает - разноцветные треугольники вращаются
procedure TForm1.Timer1Timer(Sender: TObject); begin i:=i+5; glLineWidth(3); glClearColor(1,1,1,1); glClear(GL_COLOR_BUFFER_BIT or GL_DEPTH_BUFFER_BIT) ; glLoadIdentity;
glRotatef(i,0,1,1); glRotatef(i,0,0,1);
glBegin( GL_TRIANGLES); glColor3f(1,0,0); glVertex3f( 0.0, 0, 0.0); glColor3f(0,1,0); glVertex3f(-1.0,-1.0, 0.0); glColor3f(0,0,1); glVertex3f( 1.0,-1.0, 0.0); glEnd();
glBegin( GL_TRIANGLES); glColor3f(1,0,0); glVertex3f( 0.0, 0, 0.0); glColor3f(0,1,0); glVertex3f(-1.0,1.0, 0.0); glColor3f(0,0,1); glVertex3f( 1.0,1.0, 0.0); glEnd();
glRotatef(i,1,0,1); glRotatef(-i,0,1,1); glBegin( GL_TRIANGLES); glColor3f(1,0,0); glVertex3f( 0.0, 0, 0.0); glColor3f(0,1,0); glVertex3f(-1.0,1.0, 0.0); glColor3f(0,0,1); glVertex3f( -1.0,-1.0, 0.0); glEnd();
glBegin( GL_TRIANGLES); glColor3f(1,0,0); glVertex3f( 0.0, 0, 0.0); glColor3f(0,1,0); glVertex3f(1.0,1.0, 0.0); glColor3f(0,0,1); glVertex3f(1.0,-1.0, 0.0); glEnd();
SwapBuffers(DC); end;
-
Приведенный тобой код должен работать. Варианты: 1. у тебя кривоватая видеокарта, которая не обрабатывает чиста с двойной точностью (double), только single. Попробуй поменять glVertex3d на glVertex3f.
2. А что там у тебя в FormResize? Как задается перспектива - glOrtho/glFrustum, не забыл ли отъехать от плоскости z=0?
|