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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 13.07.2010, 14:18   #1
revaldo666
Форумчанин
 
Регистрация: 24.06.2010
Сообщений: 251
По умолчанию Visual C++ (OpenGL)

Народ подскажите как сделать чтоб поварачивать фигуру вверх,вниз,право,лево.
С помощью мышки и клавиатуры.
Вот код
Код:
#include <stdlib.h>

/* подключаем библиотеку GLUT */
#include <glut.h>



/* начальная ширина и высота окна */
GLint Width = 512, Height = 512;

/* размер теугольника */
const int CubeSize = 200;

/* эта функция управляет всем выводом на экран */
void Display(void)
{
    int left, right, top, bottom;

    left  = (Width - CubeSize) / 2;
    right = left + CubeSize;
    bottom = (Height - CubeSize) / 2;
    top = bottom + CubeSize;

    glClearColor(0, 0, 0, 1);
    glClear(GL_COLOR_BUFFER_BIT);
    
    glColor3ub(255,255,0);
    glBegin(GL_TRIANGLES);
      glVertex2f(left,bottom);
      glVertex2f(left,top);
      glVertex2f(right,bottom);
    glEnd();

    glFinish();
}

/* Функция вызывается при изменении размеров окна */
void Reshape(GLint w, GLint h)
{
    Width = w;
    Height = h;

    /* устанавливаем размеры области отображения */
    glViewport(0, 0, w, h);

    /* ортографическая проекция */
    glMatrixMode(GL_PROJECTION);
    glLoadIdentity();
    glOrtho(0, w, 0, h, -1.0, 1.0);

    glMatrixMode(GL_MODELVIEW);
    glLoadIdentity();
}

/* Функция обрабатывает сообщения от клавиатуры */
void Keyboard(unsigned char key, int x, int y)
{
#define ESCAPE '\033'

    if( key == ESCAPE )
        exit(0);
}

/* Главный цикл приложения */
int main(int argc, char *argv[])
{
    glutInit(&argc, argv);
    glutInitDisplayMode(GLUT_RGB);
    glutInitWindowSize(Width, Height);
    glutCreateWindow("FroSt");

    glutDisplayFunc(Display);
    glutReshapeFunc(Reshape);
    glutKeyboardFunc(Keyboard);

    glutMainLoop();
}
revaldo666 вне форума Ответить с цитированием
Старый 13.07.2010, 16:58   #2
wyvern
Форумчанин
 
Аватар для wyvern
 
Регистрация: 24.03.2009
Сообщений: 215
По умолчанию

Код:
void Display(void)
{
    int left, right, top, bottom;

    left  = (Width - CubeSize) / 2;
    right = left + CubeSize;
    bottom = (Height - CubeSize) / 2;
    top = bottom + CubeSize;

    glClearColor(0, 0, 0, 1);
    glClear(GL_COLOR_BUFFER_BIT);

    glRotatef(30.0f, 1.0f, 1.0f, 1.0f);
    
    glColor3ub(255,255,0);
    glBegin(GL_TRIANGLES);
      glVertex2f(left,bottom);
      glVertex2f(left,top);
      glVertex2f(right,bottom);
    glEnd();

    glFinish();
}
Вместо 30.0f ставим какую-нибудь переменную, в обработчиках событий нажатия кнопки или движения мышки мы ее изменяем и вызываем перерисовку. Что-нибудь вроде glutRefresh(), я уже не помню...
wyvern@localhost:~$ sudo emerge --unmerge world
wyvern вне форума Ответить с цитированием
Старый 13.07.2010, 17:01   #3
wyvern
Форумчанин
 
Аватар для wyvern
 
Регистрация: 24.03.2009
Сообщений: 215
По умолчанию

А вообще вот тебе отличный мануальчик по опенглу: http://pmg.org.ru/nehe/index.html
Там все понятно и доступно.
wyvern@localhost:~$ sudo emerge --unmerge world
wyvern вне форума Ответить с цитированием
Старый 15.07.2010, 17:27   #4
revaldo666
Форумчанин
 
Регистрация: 24.06.2010
Сообщений: 251
По умолчанию

Спасибо разобрался
revaldo666 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Visual C++, Visual C#, Visual basic .Net, или Microsoft.Net Что лучше? _PROGRAMM_ Общие вопросы .NET 14 10.10.2012 19:24
Доработать программу(Visual Studio/C++/Opengl) Fscivi Фриланс 3 31.05.2010 12:25
Как компилировать в Visual Studio программу с OpenGL? ROD Помощь студентам 3 01.04.2010 22:06
игра "Пятнашки" на Visual C++ с использованием OpenGL Mr.Happy Фриланс 3 16.12.2009 16:19
3d Max + visual 2008 + OpenGL iwaniwan Visual C++ 4 03.05.2009 14:29