Нарисовать точку очень просто. Следующий код изображает 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, возможно ваша реализация справляется с этим лучше.