Модераторы: Rickert, Alexeis, BorisVorontsov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Фиксированный размер объекта 
:(
    Опции темы
stat007
Дата 11.1.2010, 23:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 521
Регистрация: 9.10.2008

Репутация: нет
Всего: -4



Как, что и где нужно прописать в коде, чтобы объект был фиксированного размера, т.е. когда окно разворачиваешь на весь экран, объект отображался таким же как и такого же размера как и в обычном открытом окне???
PM MAIL   Вверх
stat007
Дата 12.1.2010, 23:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 521
Регистрация: 9.10.2008

Репутация: нет
Всего: -4



Ау, что не знает чтоли ни кто???????
Вот программа, всё работает. сама программа поворачивает куб влево и вправо, при нажатии клавиш влево и вправо.......
Осталось сделать, чтобы он не деформировался при разворачивании на весь экран.... Как это сделать? smile 
Код

#include <windows.h>
#include "GL\glut.h"
#include <cmath>

#define PI 3.1415926535898

GLsizei winW=500, winH=600;

struct Vector 

float x, y;
};

Vector v1, v2, v3, v4; 
Vector pos;
float angle;

void init() // Задаем установки программы
{
    glClearColor(1.0,1.0,1.0,1.0);
v1.x = 2; v1.y = 2; // записываем статичиские координаты фигуры
v2.x =-2; v2.y = 2;
v3.x =-2; v3.y =-2;
v4.x = 2; v4.y =-2;
}

void ChangeSize(int width,int height)
{
   glViewport(0,0,width,height);
   glMatrixMode( GL_PROJECTION );
   glLoadIdentity();
   glOrtho(-5,5, -5,5, 2,12);
   gluLookAt( 0,0,5, 0,0,0, 0,1,0 );
   glMatrixMode( GL_MODELVIEW );
}

Vector Rotate(Vector v,float a) // функция вращения вектора на угол а.
{
Vector r;

a = a * (PI/180.0);
r.x = (v.x*cos(a)) + (v.y*sin(a));
r.y = (v.x*-sin(a)) + (v.y*cos(a));

return r;
}

void RanderScene()
{

glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );
    glColor3f(1.0,0.0,1.0);     //Цвет куба

glLoadIdentity();

 if(GetAsyncKeyState(VK_LEFT))  angle -= 10; // Кнопки Влево и вправо крутят фигуру! 
 if(GetAsyncKeyState(VK_RIGHT)) angle += 10;

 Vector tv1 = Rotate(v1,angle); // создаем временой вектор  для создания глобальних кординат
 Vector tv2 = Rotate(v2,angle);
 Vector tv3 = Rotate(v3,angle);
 Vector tv4 = Rotate(v4,angle);

 glBegin(GL_QUADS);
    glVertex2f(tv1.x + pos.x, tv1.y + pos.y); // рисуем фигуру и добовляем позицию
    glVertex2f(tv2.x + pos.x, tv2.y + pos.y);
    glVertex2f(tv3.x + pos.x, tv3.y + pos.y);
    glVertex2f(tv4.x + pos.x, tv4.y + pos.y);
 glEnd();

glutSwapBuffers();
glutPostRedisplay();

}

int main()
{

  init();
    glutInitWindowSize(winW, winH);        
    glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE); 

    glutCreateWindow("Вращение Куба!");

    glutReshapeFunc(ChangeSize);    
    glutDisplayFunc(RanderScene); 
    init();

    glutMainLoop();   
    return 0;
}


Это сообщение отредактировал(а) stat007 - 12.1.2010, 23:24
PM MAIL   Вверх
Zefick
Дата 13.1.2010, 14:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 3.12.2009

Репутация: нет
Всего: 2



  Нужно чтобы первые четыре аргумента функции glOrtho были пропорциональны высоте экрана.
PM MAIL   Вверх
stat007
Дата 13.1.2010, 22:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 521
Регистрация: 9.10.2008

Репутация: нет
Всего: -4



Zefick
Цитата

Нужно чтобы первые четыре аргумента функции glOrtho были пропорциональны высоте экрана.

В смысле пропорциональны высоте экрана? И как это тогда будет выглядеть?? Сама строка я имею ввиду????

PM MAIL   Вверх
Zefick
Дата 14.1.2010, 05:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 3.12.2009

Репутация: нет
Всего: 2



  как-то так: glOrtho(-height/100.f, height/100.f, -height/100.f, height/100.f, 0.1, 100);

PM MAIL   Вверх
SkIv1989
Дата 14.1.2010, 07:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 23.3.2009

Репутация: нет
Всего: нет



stat007, есть классная книжка называется OpenGL RedBook, она даже на русском есть, там найдешь ответы на свои вопросы.
PM MAIL   Вверх
Rickert
Дата 14.1.2010, 13:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ситхи не пройдут!
****


Профиль
Группа: Комодератор
Сообщений: 3356
Регистрация: 11.7.2006
Где: Лакрима

Репутация: 2
Всего: 52



www.progz.ru smile 


--------------------
Ни что не внушает сна крепче, чем день приисполненный трудов!
PM MAIL WWW Skype GTalk   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Вы можете найти полезным что...
Alexeis
Rickert
  • Английская документация по DirectX лежит где-то здесь.
  • Английская документация по OpenGL лежит где-то там.
  • Гейм-дев у нас обсуждают где-то тут

Ждём вас! С уважением, Alexeis, Rickert.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Мультимедия, OpenGL/DirectX | Следующая тема »


 




[ Время генерации скрипта: 0.0924 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.