Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Van111
209 / 188 / 4
Регистрация: 03.08.2011
Сообщений: 2,597
Записей в блоге: 12
#1

Вращение и поворачивание камеры - C++

21.06.2012, 15:57. Просмотров 566. Ответов 0
Метки нет (Все метки)

вот код ,он позволяет вращать камеру вверх вниз(это меня устраивает), и влево в право, а мне надо чтобы взор поворачивался ,а не вращался . Как так сделать?
C++
1
2
3
4
5
6
7
8
9
10
11
float alpha=0,beta=0,radius=0;
float x=0,y=0,z=posz;
Normal2Polar(x,y,z,radius,alpha,beta);
beta-= rotatex * speed_rotate; // вращение влево вправо
alpha  -= rotatey * speed_rotate; // вращение вверх вниз
Polar2Normal(alpha,beta,radius,x,y,z);
 
 
gluLookAt(posx+x,posy+y,z,posx,posy,0,0,1,0);
glRasterPos2f(10,10);
glPrint("%f %f",alpha, beta);
Добавлено через 2 часа 19 минут
у кого какие идеи?

Добавлено через 36 минут
я сделал это
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
void SphericalCoordinatesToCartesian(float &x, float &y, float &z, float radius, float zenith, float azimuth)
{
    x = radius * sin(zenith) * cos(azimuth);
    y = radius * sin(zenith) * sin(azimuth);
    z = radius * cos(zenith);
}
 
void CartesianCoordinatesToSpherical(float x, float y, float z, float &radius, float &zenith, float &azimuth)
{
    radius = sqrt(pow(x,2) + pow(y,2) + pow(z,2));
    zenith = atanl( ( pow(x,2) + pow(y,2) ) / z );
    azimuth= atan((y/x));
}
 
float radius,zenith,azimuth=0;
float x=100,y=100,z=0;
CartesianCoordinatesToSpherical(x,y,z,radius,zenith,azimuth);
zenith -=rotatey * speed_rotate;
azimuth  += rotatex * speed_rotate;
SphericalCoordinatesToCartesian(x,y,z,radius,zenith,azimuth);
gluLookAt(posx-5,posy-5,posz,posx+x,posy+y,posz+z,0,0,1);
Добавлено через 2 минуты
теперь новый вопрос . надо сделать так чтобы при поднятии камеры , она плавно прокручивалась а не дёргалась в новую позицию, у кого какие идеи?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.06.2012, 15:57
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Вращение и поворачивание камеры (C++):

вращение фигуры - C++
Я прекрасно знаю что такое матрица поворота, а что делать к примеру если фигура описывается не уравнением а методами, вот к примеру эллипс...

Вращение фигуры - C++
Как можно сделать вращение фигуры?? Например, дан треугольник (имеется в виду графический режим в borland c++ 3.1)

Вращение шара - C++
Как заставить один шар вращаться в форме восьмёрки?

вращение фигуры - C++
Добрый день! помогите пожалуйста написать метод вращения фигуры по заданному углу. вот основной код программы: // laba2-9.cpp:...

Вращение многоугольника - C++
Добрый вечер! Есть прога, которая рисует многоугольник с заданным числом вершин. Подскажите, пожалуйста, как сделать так, чтобы...

вращение фигуры - C++
Здраствуйте. Необходимо реализовать вращение паралелепипеда в горизонтальной плоскости вокруг оси , которая проходит через центр фигуры и...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.06.2012, 15:57
Привет! Вот еще темы с ответами:

вращение отрезка. - C++
осуществить вращение отрезка вокруг центра, лежащего внутри отрезка и не совпадающего с его центром

Вращение куба - C++
Возникают проблемы с циклами поворотов.Куб рисуется не полностью .Если кому -нибудь не сложно , подскажите в чем проблема. Часть программы...

Вращение отрезка - C++
Осуществить вращение отрезка вокруг центра не совпадающего с центром на СИ

Произвольное вращение графики - C++
Извиняюсь за повтор, но не знает ли многоуважаемый all, как повернуть в hDC (а лучше в hWnd) битмап? В MSDN есть пример с...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru