Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Игры";
Текущий архив: 2003.10.09;
Скачать: [xml.tar.bz2];

Вниз

Чисто геометрия   Найти похожие ветки 

 
com2003   (2003-04-03 20:39) [0]

У меня назрел вопрос по 3D геометрии. Так с ходу сформулировать его сложно. Есть система координат 3Д и задан вектор (начало и конец) в этой системе. Надо построить новую систему координат с центром в начале этого вектора и осью Oz" совпадающую с этим вектором, при этом ось Ox" паралельна плоскости zOx.(ось Oy направлена вверх, а Oz от нас).
Тоесть надо найти координаты векторов Ox" и Oy".
Хуууххх, еле сформулировал, попробую переделать:
у меня есть "камера"(известно положение и направление), как найти ещё два взаимно-перпендикулярных вектора(Ox" и Oy" соответственно).
Вся эта пурга мне нужна для определения ортонормированного базиса, чёбы переводить координаты точек из "глобальной" системы в систаму координат камеры. Потом проецировать точки на экран будет очень просто.

Если вы оставите хотя бы ссылки на доку по теме ,также буду очень благодарен.


 
Думкин   (2003-04-04 05:22) [1]

Учебник по аналитической геометрии?
Чем лучше формулировка - тем проще получение ответа.
Сядь, напиши формулировку 10 раз, подумай - напиши окончательно, а потом пости.


 
MBo   (2003-04-04 06:25) [2]

Существует бесконечное число пар перпендикулярных векторов OX и OY, лежащих в плоскости, перпендикулярной данному вектору OZ.
Иначе - число аффинных преобразований, переводящих 2 данные точки в другие заданные, бесконечно. Для однозначного определения требуется 3 точки, не лежащие на одной прямой


 
Griffen   (2003-04-04 06:50) [3]

1 шаг. Берешь векторное произведение вектора (0,1,0) (ты сказал, что у тебя вверх - Oy) и своего Z вектора и получаешь вектор Ox"
2 шаг. Берешь векторное произведение своего Z вектора и Ox" и получаешь вектор Oy"
3 шаг. Составляешь матрицу базиса по по векторам Ox", Oy", Z.
4 шаг. Если у камеры есть крен (повернута вокруг Z), то домножаешь результат (3) на матрицу поворота вокруг оси Z (нужен дополнительный параметр - крен камеры).
5 шаг. Домножаешь матрицу трансляции в координаты камеры на результат (4).


 
pasha676   (2003-04-04 09:21) [4]

МВО прав. По одному вектору новы координаты не построишь. Строго говоря и по двум тоже (два варианта третьего вектора). Для построения новых координат надо три вектора+совет Думкина по просмотру учебника. В учебнике есть преобразование координат.


 
com2003   (2003-04-04 17:21) [5]


> MBo © (04.04.03 06:25)
> Существует бесконечное число пар перпендикулярных векторов
> OX и OY, лежащих в плоскости, перпендикулярной данному вектору
> OZ.

Конечно, но есть условие, что вектор Ox" паралелен плоскости zOx.
Для однозначного определения можно указать угол поворота вокруг Oz"(в данном случае 0).


 
Com2003   (2003-04-05 10:52) [6]


> Griffen © (04.04.03 06:50)

Спасибо, похоже этот способ сработает.



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

Форум: "Игры";
Текущий архив: 2003.10.09;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.009 c
9-27293
[Baradoo]
2003-03-15 22:14
2003.10.09
Экспорт из 3d Max


1-27505
Nikulin
2003-09-26 15:47
2003.10.09
Про сервисы...


1-27515
bss
2003-09-30 11:09
2003.10.09
Как определить кем из пользователей блокируется файл


1-27587
xGhost
2003-09-29 13:09
2003.10.09
Программа не выключаеться при попытки перезагрузить компьютер :(


9-27290
drnet
2003-04-08 21:17
2003.10.09
3DSTATE





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский