2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки


Правила форума


В этом разделе нельзя создавать новые темы.

Если Вы хотите задать новый вопрос, то не дописывайте его в существующую тему, а создайте новую в корневом разделе "Помогите решить/разобраться (М)".

Если Вы зададите новый вопрос в существующей теме, то в случае нарушения оформления или других правил форума Ваше сообщение и все ответы на него могут быть удалены без предупреждения.

Не ищите на этом форуме халяву, правила запрещают участникам публиковать готовые решения стандартных учебных задач. Автор вопроса обязан привести свои попытки решения и указать конкретные затруднения.

Обязательно просмотрите тему Правила данного раздела, иначе Ваша тема может быть удалена или перемещена в Карантин, а Вы так и не узнаете, почему.



Начать новую тему Ответить на тему
 
 Проецирование 3D на 2D
Сообщение15.03.2014, 12:56 


20/10/12
235
Добрый день, уважаемые участники форума!
Тема, которую я поднимаю, конечно на стыке наук, но та часть, где я столкнулся с проблемами больше принадлежит алгебре. Нужно написать простенькую программу, рисующую элементарные 3D объекты и преобразования с ними(например, вращение куба).
Понятно, что рисовать надо не сам объект, а его проекцию. Но работать я хочу в виртуальной трехмерной системе координат, а проекцию уже строить отдельно.
Изображение
Начнем с элементарного, с точки в пространстве. Найти координаты точки-проекции на плоскости "просмотра" очень легко, но это будут координаты в той же виртуальной системе координат. А вот как связать эти координаты с реальными 2d координатами на плоскости? Пусть даже для определенности
одна из осей на ней будет совпадать с проекцией какой-то из осей виртуальной системы координат. У меня как-то фантазии не хватает, честно говоря.
Критика способа проецирования принимается.

 Профиль  
                  
 
 Re: Проецирование 3D на 2D
Сообщение15.03.2014, 15:58 
Заслуженный участник


23/07/08
10626
Crna Gora
Изображение
У нас есть две системы координат:
1) Синяя, физическая (Вы называете её виртуальной). Векторы, проведенные из её начала, обозначены большими буквами.
2) Зелёная, наблюдателя. Векторы, проведенные из её начала, обозначены маленькими буквами.
В каждой из систем выбран базис (жирные векторы) — правая тройка ортонормированных векторов.

Для наглядности можете считать, что базисные векторы системы наблюдателя привязаны к голове воображаемого наблюдателя.
Начало отсчета находится на переносице.
$\mathbf e_1$ направлен вправо (по отношению к голове);
$\mathbf e_2$ направлен к подбородку;
$\mathbf e_3$ направлен вперед.


Вектор $\mathbf A$ задает положение наблюдателя в физической системе.
Положение объекта в физической системе обозначим $\mathbf R$, в системе наблюдателя $\mathbf r$ — это радиус-векторы, проведенные из начала соответствующей системы к объекту.

Координатами объекта в данной системе называются коэффициенты разложения радиус-вектора объекта по базисным векторам:
$\begin{matrix}\mathbf R=X_1\mathbf E_1+X_2\mathbf E_2+X_3\mathbf E_3\\\mathbf r=x_1\mathbf e_1+x_2\mathbf e_2+x_3\mathbf e_3\end{matrix}$
При этом
$\begin{matrix}X_1=\mathbf R\cdot \mathbf E_1&X_2=\mathbf R\cdot \mathbf E_2&X_3=\mathbf R\cdot \mathbf E_3\\x_1=\mathbf r\cdot \mathbf e_1&x_2=\mathbf r\cdot \mathbf e_2&x_3=\mathbf r\cdot \mathbf e_3\end{matrix}$

По правилу треугольника $\mathbf R=\mathbf A+\mathbf r$.

Опираясь на эту информацию, решите важную вспомогательную задачу.
Даны физические координаты объекта $X_1, X_2, X_3$.
Найти его координаты в системе наблюдателя $x_1, x_2, x_3$.
После этого «экранные» координаты найти уже совсем просто.

 Профиль  
                  
 
 Re: Проецирование 3D на 2D
Сообщение16.03.2014, 13:47 


20/10/12
235
Спасибо!

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 3 ] 

Модераторы: Модераторы Математики, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group