Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.04.10;
Скачать: CL | DM;

Вниз

Как прикрепить камеру к объекту   Найти похожие ветки 

 
APTEMKA ©   (2002-10-23 02:25) [0]

У меня есть координаты объекта
MyHero =
...
X,Y,Z: Double;
...
end;

Вопрос: подскажите как прикрепить(расчитать) камеру к этим координатам используя к примеру gluLookAt() или что нибудь другое.

procedure glDraw();
begin
...
Map.Draw();
// вопрос, где этот код поворота камеры вставить?
MyHero.Draw();
...
end;


 
Ketmar ©   (2002-10-23 10:40) [1]

glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluPerspective(60.0, ClientWidth / ClientHeight, 1.0, 4096.0);
gluLookAt(X, Y, Z, // pos
что, угодно, барин, // target
вверх, торчит, вектор); // up
glMatrixMode(GL_MODELVIEW);
...


Satanas Nobiscum! 23-Oct-XXXVII A.S.


 
APTEMKA ©   (2002-10-28 02:34) [2]

Ребята извените что так долго не писал проблемы с инетом были.
Спасибо что ответил.
Ketmar я может не правильно сказал, но как эта функция работает я знаю, у меня в другом проблема (в математике).
Мне нужно расчитать как раз этот вектор (X, Y, Z, // pos как ты написал.
Если у тебя есть готовая функция пошли на мыло или если можешь объясни так.
У меня есть две переменные
первая 0..360 горизонтальное перемешение мыши
вторая -60..60 вертикальное перемешение
Вот в зависимости от их значений надо расчитать эти координаты.
Спасибо.


 
APTEMKA ©   (2002-10-28 22:10) [3]

Ребята если кто знает ответьте пожалуйста.


 
Gandalf   (2002-10-29 14:38) [4]

Не совсем ясна задача, точнее что дано. Для LookAt нужы точка откуда смотришь, точка куда смотришь, и вектор направленый " небо". Что ты не можешь из этого рассчитать, и что у тебя есть?


 
APTEMKA ©   (2002-10-30 00:45) [5]

Мне нужна точка откуда смотришь.


 
APTEMKA ©   (2002-11-01 01:35) [6]

Нашел решение, короче пока на бумаге не обмозгуешь ни чего не поймёшь. Если кому нужен код, вот он.

gluLookAt(MyHero.X+
(Cos(DegToRad(Heading))*(CameraLength*sin(DegToRad(Tilt)))) ,
MyHero.Y+0.6+cos(DegToRad(Tilt)),
MyHero.Z+
Sin( DegToRad(Heading)) *(CameraLength*sin(DegToRad(Tilt))),
MyHero.X,
MyHero.Y+0.6,
MyHero.Z,
0,1,0);

0<Heading<360
0<Tilt<180


 
Stucker   (2002-11-09 20:18) [7]

Удалено модератором


 
APTEMKA ©   (2002-11-09 22:33) [8]

Удалено модератором


 
Stucker   (2002-11-10 20:22) [9]

Удалено модератором



Страницы: 1 вся ветка

Текущий архив: 2003.04.10;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.017 c
1-30449
OlBan
2003-03-31 09:17
2003.04.10
Как программно выбрать другое окно приложения?


1-30358
DimaK
2003-03-30 15:18
2003.04.10
автоматически убирать форму


4-30657
Ihor Osov'yak
2003-02-11 17:18
2003.04.10
уникальный UID для сеанса работы - где он?


1-30366
$Hic0
2003-03-31 13:21
2003.04.10
Как выводить в Memo разноцветные сообщения


3-30274
Andrei
2003-03-21 17:30
2003.04.10
Фильтрация