Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Visual C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.10.2013, 21:26   #1
Каталина
Пользователь
 
Регистрация: 04.10.2013
Сообщений: 11
Радость Перемещать фигуру в OPEN GL

Всем привет, помогите пожалуйста)
Есть программа, рисует, масштабирует, осталось только сделать так что бы фигуру можно было перемещать)
Короче нужен кусок кода и объяснения куда его вставлять, ибо не очень шарю)))


Код:
// шаблон
#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;
}
Каталина вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как перемещать label с помощью мыши? Лукманов Александр Общие вопросы Delphi 9 26.11.2018 20:23
Как перемещать изображение по панели? AndersonEgo C# (си шарп) 3 27.05.2011 10:05
Перемещать форму по клику на PopupMenu.Item Alex Cones Общие вопросы Delphi 2 26.08.2010 03:59
Как вручную перемещать индикатор в DBGrid PilGrim БД в Delphi 5 04.01.2009 18:43
Как перемещать? Черничный Общие вопросы Delphi 4 09.06.2008 13:56