2015-10-09 10 views
1

Я пишу программу трассировки лучей, которая пересекает сферу с источником света области. У меня есть, что векторыПреобразование векторов космического пространства в локальное пространство

  • горе (вес - исходящий)
  • Wi (ш - входящий)
  • п (нормали к поверхности)

enter image description here

Как я передать, что векторы от мировой системы координат до локальной системы координат. Я ищу алгоритм C++, преобразование для того, что векторы лежат в той же самой области. Спасибо.

Примечание: Например вектор нормали координаты в этой локальной системе координат являются: n2 = Vector (х = 0, у = 1, г = 0)

Edit: Я ищу "WO1" , "wi1" и "n2" локальные значения координат xyz.

ответ

1

Вы проектируете свои векторы, которые лежат в мировой системе координат, к векторам, которые составляют основу вашей локальной системы координат.

Например, если ваша локальная система координат представляет собой триплет векторов (например, Lx, Ly, Lz), которые охватывают ваше локальное векторное пространство. wo координаты в локальной системе будет:

wo_local_x = wo . Lx; 
wo_local_y = wo . Ly; 
wo_local_z = wo . Lz; 

где . обозначает скалярное произведение.