Я пишу программу трассировки лучей, которая пересекает сферу с источником света. У меня есть векторы
Как перенести эти векторы из мировой системы координат в локальную систему координат. Я искал алгоритм c ++, преобразования для того, чтобы векторы лежали в одной и той же полусфере. Спасибо.
Замечания:
Например, нормальные векторные координаты в этой локальной системе координат:
n2 = вектор (x = 0, y = 1, z = 0)
Редактировать:
Я ищу локальные значения координат xyz «wo1», «wi1» и «n2».
Вы проецируете свои векторы, которые лежат в мировой системе координат, на векторы, которые составляют основу вашей локальной системы координат.
Например, если базис вашей локальной системы координат представляет собой триплет векторов (например, Lx
, Ly
, Lz
), которые охватывают ваше локальное векторное пространство. wo
Координаты в локальной системе будут:
wo_local_x = wo . Lx;
wo_local_y = wo . Ly;
wo_local_z = wo . Lz;
где .
обозначает точечное произведение.
Других решений пока нет …