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

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

Вернуться   Форум программистов > Delphi программирование > Мультимедиа в Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 03.12.2010, 20:29   #1
SalasAndriy
Форумчанин Подтвердите свой е-майл
 
Аватар для SalasAndriy
 
Регистрация: 01.11.2007
Сообщений: 157
Лампочка Растягивание сцены в GLSceneViewer

Всем доброго времени суток! У меня такая проблема:
Во общем когда я рисую графику на чистом OpenGL-ле то вся картинка правильно реагирует на изменение размеров формы, картинка всегда отображает то что я нарисовал, в любом размере.
Вот наглядный пример 1:



Пример 2:



Пример 3:



Видите? Как бы я не изменял размеры панели, на которую выводится графика, она всегда подгоняется под её размеры... Это я делаю здесь:
Код:
glViewport(0,0,Width, Height);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluPerspective(50, Width / Height, 1, 2000);
А вот как сделать чтобы GLSceneViewer тоже так подгонял под размеры окошка? Я не знаю... Когда меняю его размеры, то получается что камера либо приближается, либо отдаляется...
Вот наглядный пример 1:



Пример 2:



Подскажите, пожалуйста, как с этим бороться?

*** Добавлено ***:

Всё, уже сам разобрался)) Гугл всё-таки вещь)) Может кому нужно будет, вот такую вот процедуру нашел:
Код:
procedure TForm1.SetFOV(AWidth, AHeight: Integer; Angle: single; Dim:integer=0);
 var H,FL:single;
     zNear,pj:single;
     maxdim:single;
 begin
   H:=AHeight/AWidth;
   case Dim of
     0:maxdim:=max(AWidth,AHeight);
     1:maxdim:=min(AWidth,AHeight);
     2:maxdim:=AWidth;
     3:begin maxdim:=AHeight;H:=1/H;end;
   end;
   pj:=1/tan(pi/180*angle/2);
   zNear:=pj/2*h;
   FL:=zNear/2/96*(25.4*maxdim);
   GLCamera1.FocalLength:=FL;
 end;
Параметр Angle, определяет угол обзора камеры.

Тему можно закрывать...

Последний раз редактировалось SalasAndriy; 03.12.2010 в 23:48.
SalasAndriy вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Отрисовка сцены на форме Lawliet32 Общие вопросы C/C++ 0 12.10.2010 16:29
Музыканты демо-сцены VanHelsing Свободное общение 0 23.05.2010 00:23
OpenGL.Нормально отображение сцены (масштаб)? spamer Мультимедиа в Delphi 0 01.03.2010 01:25
Вызов рисующих методов сцены из подпрограммы. jojahti Общие вопросы C/C++ 6 20.08.2009 11:50