Всем привет, помогите пожалуйста)
Есть программа, рисует, масштабирует, осталось только сделать так что бы фигуру можно было перемещать)
Короче нужен кусок кода и объяснения куда его вставлять, ибо не очень шарю)))
Код:
// шаблон
#include <glut.h> // подключение библиотек
#include <gl.h> //в папке include (вашей программной среды) создать папку GL и поместить файлы gl.h, glu.h, glut.h
#include <math.h>
// в папку lib (вашей программной среды) поместить файлы opengl32.lib, glu32.lib, glut32.lib
// в папку system (вашей ОС)поместить файлы opengl32.dll, glu32.dll, glut32.dll,glut.dll
void display() // функция обратного вызова для события обновления окна
{
glClear(GL_COLOR_BUFFER_BIT); // очистка окна цветом фона
glBegin(/*GL_POINTS*/GL_LINE_LOOP); // рисуем точки
glVertex2i(300,400);//1
glVertex2i(200,225);//2
glVertex2i(375,175);//3
glVertex2i(375,375);//4
glVertex2i(200,325);//5 координаты вершин
glVertex2i(300,150);//6
glVertex2i(425,325);//7
glVertex2i(245,375);//8
glVertex2i(245,175);//9
glVertex2i(425,225);//10
glEnd(); // прекращаем рисовать точки
glFlush(); // отправляем весь вывод на дисплей
}
void keyboard(unsigned char key, int x, int y)
{
switch(key)
{case 'p': { glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
glScaled(2,2,1);
display();
break;};};
glClear(GL_COLOR_BUFFER_BIT);
switch(key)
{case 'h': { glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
glTranslated(100,2,0);
display();
break;};};
switch(key)
{case 'o': { glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
glRotated(45,0,0,1);
display();
break;};};
//default:break;
}
/*void abc(int x, int y)
{
glClear(GL_COLOR_BUFFER_BIT); // очистка окна цветом фона
glBegin(GL_LINE_LOOP); // рисуем точки
glVertex2i(400,500);//1
glVertex2i(300,325);//2
glVertex2i(475,275);//3
glVertex2i(475,475);//4
glVertex2i(300,425);//5 координаты вершин
glVertex2i(400,250);//6
glVertex2i(525,425);//7
glVertex2i(345,475);//8
glVertex2i(345,275);//9
glVertex2i(525,325);//10
glEnd(); // прекращаем рисовать точки
glFlush(); // отправляем весь вывод на дисплей
}*/
int main(int argc, char** argv)
{
glutInit(&argc, argv); // инициализирует OpenGL Utility Toolkit
glutInitDisplayMode (GLUT_SINGLE|GLUT_RGB); // инициализирует дисплей (GLUT_SINGLE - один дисплейный буфер,
//GLUT_RGB - задание цвета как сачетание красного, зеленого и синего
glutInitWindowSize(640,480); // задаем ширину и высоту окна при его инициализации
glutInitWindowPosition(100,150); // задаем координаты верхнего левого угла окна относительно верхнего левого угла экрана
glutCreateWindow("Primer"); // открываем и отображаем окно с указанным названием
glClearColor(1.0, 1.0, 1.0, 0.0); // цвет фона (красный, зеленый, синий, прозрачность)
glColor3f(0.0,0.0,0.0); // цвет рисования (красный, зеленый, синий)
glPointSize(4.0); // устанавливаем размер точки (одна точка квадратик в 4 пиксела)
glMatrixMode(GL_PROJECTION); // установка
glLoadIdentity(); // простой системы
gluOrtho2D(0,900.0,0,900.0);//-320,+320, -240,+240); // координат
glutDisplayFunc(display); // регистируем функцию обновления окна
glutKeyboardFunc(keyboard);
glutMainLoop(); // входим в бесконечный главный цикл
return 0;
}