Войти
ПрограммированиеФорумГрафика

Камера по сфере

Страницы: 1 2 3 Следующая »
#0
1:46, 1 авг. 2005

Как можно реализовать вращение камеры по сфере радиусом R, причем камера должна быть Направлена в центр сферы?
Интересует любая информация, исходники (D3D, GL), статьи

Спасибо.


#1
1:58, 1 авг. 2005

Uot
Какие нафиг исходники?? Читай свой школьный учебник в разделе по тригонометрии.

#2
2:03, 1 авг. 2005

(x - x0) ^ 2 + (y - y0) ^ 2 + (z - z0) ^ 2 = R ^ 3

что дальше?

#3
2:09, 1 авг. 2005

Тебе нужен так называемый полярный вид, где положение камеры определяется тремя углами(azimuth, twist, elevation) и дистанцией(R) до центра сферы. Исходники есть в любом учебнике по компьютерной графике и у меня дома, но я к сожалению не дома.

#4
2:14, 1 авг. 2005

Suppose your application involves orbiting the camera around an object that's centered at the origin. In this case, you'd like to specify the viewing transformation by using polar coordinates. Let the distance variable define the radius of the orbit, or how far the camera is from the origin. (Initially, the camera is moved distance units along the positive z-axis.) The azimuth describes the angle of rotation of the camera about the object in the x-y plane, measured from the positive y-axis. Similarly, elevation is the angle of rotation of the camera in the y-z plane, measured from the positive z-axis. Finally, twist represents the rotation of the viewing volume around its line of sight.
Show that the following routine could serve as the viewing transformation:

void polarView{GLdouble distance, GLdouble twist,
  GLdouble elevation, GLdouble azimuth)
{
      glTranslated(0.0, 0.0, -distance);
      glRotated(-twist, 0.0, 0.0, 1.0);
      glRotated(-elevation, 1.0, 0.0, 0.0);
      glRotated(azimuth, 0.0, 0.0, 1.0);
}

#5
2:15, 1 авг. 2005

Попробуй поставить по этим координатам какойто обект, по том как он движетса, изменяя угли "a" и "b" все поймеш! :)

x=cos(a)*cos(b)*R;
z=sin(a)*cos(b)*R;
y=sin(b)*R;

#6
2:17, 1 авг. 2005

Вообще то есть ище варианты движения по сфере, а для чево тебе это нужно??

#7
2:17, 1 авг. 2005

а если у меня x, y, z
углы высчитать не могу - нет arc*() функций

а есть ли другие способы подсчета углов?

#8
2:18, 1 авг. 2005

функций нет - потому что это mobile device

#9
2:23, 1 авг. 2005

Вращение подразумевает углы.

#10
2:23, 1 авг. 2005

Что вообще нет, может хоть чтото???
Одними "+" и "-" тут не обойтись!! :)))

#11
2:25, 1 авг. 2005

Тебе осталось написать библиотеку с тригонометрическими функциями.

#12
2:28, 1 авг. 2005

есть sin(), cos(), sqrt() ...
нет только arc*()

#13
2:30, 1 авг. 2005

Так чем тебе мой вариант не подходит???

#14
2:31, 1 авг. 2005

Тогда смотри формулы Nazik'a.

Страницы: 1 2 3 Следующая »
ПрограммированиеФорумГрафика

Тема в архиве.