Основы программирования OpenGL в Borland С+Builder и Delphi

       

Точки


Нарисовать точку очень просто. Следующий код изображает 10 точек разного размера.

С++

 void TForm1::Draw()

{

glClear(GL_DEPTH_BUFFER_BIT or GL_COLOR_BUFFER_BIT);

glColor3f(1,1,1);



Byte i;

for(i=0;i<10;i++)

{

glPointSize((i+1)*4);

glBegin(GL_POINTS);

glVertex2f(i,i);

glEnd();

}

SwapBuffers(ghDC);

}

Delphi

 procedure TForm1.Draw;

var

i:byte;

begin

glClear(GL_DEPTH_BUFFER_BIT or GL_COLOR_BUFFER_BIT);

glColor3f(1,1,1);

for i:=0 to 9 do

begin

glPointSize((i+1)*4);

glBegin(GL_POINTS);

glVertex2f(i,i);

glEnd;

end;

SwapBuffers(ghDC);

end;

ПРИМЕЧАНИЕ: в FormResize я вызвал glOrtho следующим образом - glOrtho(-1,12, -1,12, 2,12). Это – для того, чтобы все точки поместились в окне.

Для изменения размера точки используется процедура glPointSize(size). Параметр size задаёт диаметр точки.

В этом примере все точки квадратные. В OpenGL разрешено сглаживание (smoothening) как точек, так и более сложных объектов. Как и всё в OpenGL, этот режим включается и выключается процедурами glEnable/glDisable. Для точек это делается так:

glEnable(GL_POINT_SMOOTH);

Вставив эту строчку где-нибудь перед рисованием точек, получим:

Откровенно говоря, у меня OpenGL делает это довольно плохоL, возможно ваша реализация справляется с этим лучше.



Содержание раздела