нужно заштрихувать линию, помогите...
PHP код:
// 111.cpp: определяет точку входа для консольного приложения
#include "stdafx.h"
#include <windows.h>
#include <GL/gl.h>
#include "glut.h"
#include <math.h>
void init(void)
{
glShadeModel(GL_SMOOTH); //set the shader to smooth shader
glNewList(1,GL_COMPILE);
glColor3f(1,0,0); // Задаємо колір створюваного примітива
glBegin(GL_LINES); // Задаємо сам примітив
glVertex2d(0.1,1);
glVertex2d(0.8,2);
glEnd();
glEndList(); // Закриваємо список зображень під номером 1
glNewList(2,GL_COMPILE);
glColor3f(1,0,0); // Задаємо колір створюваного примітива
glBegin(GL_POINTS); // Задаємо сам примітив
glVertex2d(0.5,1);
glVertex2d(0.8,2);
glEnd();
glEndList(); // Закриваємо список зображень під номером 2
glNewList(3,GL_COMPILE);
glColor3f(0, 1.0, 1.0); // Задаємо колір створюваного примітива
glBegin(GL_QUADS); // Задаємо сам примітив
glVertex2d(0.5,1);
glVertex2d(0.8,2);
glVertex2d(0.2,-0.5);
glVertex2d(-0.2,-0.5);
glEnd();
glEndList(); // Закриваємо список зображень під номером 3
}
void display(void)
{
glClearColor(1.0, 0.0, 0.0, 1.0);
glClear(GL_COLOR_BUFFER_BIT); // clear the color
glPointSize(8);
glLineWidth(5);
glColor3d(1,1,0);
glPolygonMode (GL_FRONT,GL_LINE);
glBegin(GL_POINTS);
glVertex2d(1,1);
glEnable (GL_POINT_SMOOTH);
glEnd();
glBegin(GL_LINES);
glVertex2d(-0.8,0.5);
glVertex2d(-0.8,-0.7);
glEnable(GL_LINE_SMOOTH);
glEnd();
glBegin(GL_TRIANGLES);
glVertex2d(-0.3,0.5);
glVertex2d(-0.1,1);
glVertex2d(-0.3,0.9);
glEnd();
glBegin(GL_QUADS);
glVertex2d(-0.2,0.5);
glVertex2d(0.2,0.5);
glVertex2d(0.2,-0.5);
glVertex2d(-0.2,-0.5);
glEnd();
glBegin(GL_LINE_STRIP);
glVertex2d(0.3,-0.9);
glVertex2d(0.5,-0.3);
glVertex2d(0.7,-0.9);
glVertex2d(0.2,-0.5);
glVertex2d(0.8,-0.5);
glVertex2d(0.3,-0.9);
glEnd();
glCallList(1);
glCallList(2);
glCallList(3);
glutSwapBuffers(); // swap the buffers
glBegin(GL_LINE_STRIP);
glVertex2d(0.3,-0.9);
glVertex2d(0.5,-0.3);
glVertex2d(0.7,-0.9);
glVertex2d(0.2,-0.5);
glVertex2d(0.8,-0.5);
glVertex2d(0.3,-0.9);
glEnd();
}
void reshape(int w, int h)
{
glViewport(0, 0, (GLsizei)w, (GLsizei)h); // set the matrix
glMatrixMode(GL_PROJECTION);
glLoadIdentity();//set the matrix back to model
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
}
void keyboard(unsigned char key, int x, int y)
{
if(key==27)
{
exit(0); // quit the program
}
}
int main(int argc, char **argv)
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_DOUBLE); //set the display to Doublebuffer
glutInitWindowSize(300, 300);
glutCreateWindow(argv[0]);
init(); // call the init function
glutDisplayFunc(display); //use the display function to draweverything
glutReshapeFunc(reshape); //reshape the window accordingly
glutKeyboardFunc(keyboard); //check the keyboard
glutMainLoop(); //call the main loop
return 0;
}