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

Вниз

OpenGL - Стереометрия, мать ее!   Найти похожие ветки 

 
grouzd[E]v ©   (2005-05-07 18:38) [0]

Доброе утро/день/вечер, вел. и уж. мастера!

У нас с делфой очередная проблема: нужно уравнение сферы (если оно вообще есть) - в курсе геометрии 7-го класса было что-то такое для 2D:
SQR(X) + SQR(Y) = SQR(R) По-моему, так...
Так вот: у меня есть камера, содержащая две точки - ОТКУДА смотрят (1) и КУДА смотрят (2). Точка (2) неподвижна, нужно сделать так чтобы точка (1) вращалась вокруг нее по окружности (радиус я высчитываю по формуле
R := SQRT( SQR(dX) + (SQR(dY) + (SQR(dZ) ), где dX, dY, dZ - разности координат между т(1) и (2)
Вы уж конесно извите что лезу с такой "технической" дрянью, но мы только еще начали проходить стереометрию - 10 класс, а мне к алгебраичке соваться неохота.

P.S.
Странно, вроде вопрос добавил, а найти не могу, так что, если повторяюсь, извините старика...


 
NE_Parovoz   (2005-05-07 18:43) [1]

R:=Sqrt(dX*dX+dY*dY+dZ*dZ);


 
grouzd[E]v ©   (2005-05-07 19:08) [2]

Спасибо, конечно, но это - формула для диагонали параллепипеда, ее я знаю и пробовал использовать, но получается хрень, ведь при перемешении меняются 2 координаты, допустим, я поворачиваю точку (1) влево - меняются X и Z, то бишь 2 неизвесных и нужно добыть еще что-то


 
XProger ©   (2005-05-07 21:31) [3]

А вот синусы-косинусы с какого класса проходят? ;)

Поворот относительно оси Y отсчёт от оси X:

x := cos(angle)*Rad;
z := sin(angle)*Rad;


Аналогично и относительно других осей...
Если метод не устроит:

x := wx*c - wz*s;
z := wx*s + wz*c;


Но я что-то не понял вопроса. Ты поворачиваешь точку с которой смотришь, и тебе нужно определить расстояние до той точки на которую смотришь?


 
grouzd[E]v ©   (2005-05-07 22:08) [4]

Неа, расстояние известно, координаты цели тоже, найти нужно координаты 2-й точки ОТКУДА смотрят.


 
grouzd[E]v ©   (2005-05-07 22:09) [5]

Неа, расстояние известно, координаты цели тоже, найти нужно координаты 2-й точки ОТКУДА смотрят.


 
parovoZZ ©   (2005-05-07 22:39) [6]

И чем тебя не устраивает [3]?


 
grouzd[E]v ©   (2005-05-08 11:16) [7]

Я БАЛБЕС!!! МОЖЕТЕ СМЕЛО ТЫКАТЬ В МЕНЯ ПАЛЬЦЕМ И НАЗЫВАТЬ ПРИДУРКОМ!!! Нужно менять не координаты, а угол и уже от него все считать как в [3] Спасибо XProger!!!


 
Leon ©   (2005-05-08 11:16) [8]

Я бы сделал так:

x = x0 + R*sin(1)*cos(2)
y = y0 + R*sin(1)*sin(2)
z = z0 + R*cos(1)
( сферическая система координат )
1,2 - азимутальный и радиальный углы
x0,y0,z0-наблюдаемая точка
чтоб крутилось - наращивай 2


 
grouzd[E]v ©   (2005-05-08 11:36) [9]

TO: Leon А че за угол 1. И, если не секрет, что означает "азимутальный" - угол в градусах?


 
grouzd[E]v ©   (2005-05-08 13:10) [10]

Делаю так:



a1 := a1 + <..>;
x0 := x*cos(a1) - z*sin(a1);
z1 := x*sin(a1) + z*cos(a1);

a2 := a2 + <..>;
y0 := y*cos(a2) - z*sin(a2);
z2 := y*sin(a2) + z*cos(a2);

x := x0;
y := y0;
z := z1 + z2;



Получается полная хрень если написать z := z1 то движется толко по горизонтали, если z := z2 - то же самое но по вертикали. А как сделать чтобы можно было одновременно по гор. и вер.?
Может надо че-то сделать с векторм up (я делаю gluLookAt)?


 
XProger ©   (2005-05-08 13:40) [11]

Делай как посоветовал Leon :)
Up вектор тоже вертеть надо, и будет он у тебя направлен по касательной к сфере.


 
grouzd[E]v ©   (2005-05-08 18:54) [12]

Дык я и спрашиваю - Как? Откуда взять угол (1)?


 
Leon ©   (2005-05-08 19:11) [13]

(1) от 0 до Pi ( Pi/2 если смотреть сверху)
(2) от 0 до 2*Pi
Возьми (1) произвольно :)
азимутальный - угол между осью Oz и направлением на камеру


 
grouzd[E]v ©   (2005-05-08 20:01) [14]

Ааа.. Не пашет. Ну да ладно, хрен с ним - буду поворачивать или по горизонтали или по вертикали



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

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

Наверх




Память: 0.5 MB
Время: 0.051 c
4-1121604685
FRick
2005-07-17 16:51
2005.09.04
GUID видеокарты


4-1121348763
Subdigger
2005-07-14 17:46
2005.09.04
SC_RESTORE


14-1123758028
ПЛОВ
2005-08-11 15:00
2005.09.04
Любители ужОсов :)


1-1123696512
Yegorchic
2005-08-10 21:55
2005.09.04
Как перевести из "цвета" в "текст"?


1-1123677276
3asys
2005-08-10 16:34
2005.09.04
crpe32.pas