На этом шаге мы приведем решение этой задачи.
Сформулируем задачу следующим образом. Заданы два единичных вектора: S1 - это радиус-вектор, направленный на источник, и N1 - радиус-вектор нормали к границе раздела двух сред. Также должны быть известны два коэффициента преломления для данных сред - n1 и n2 (или же их отношение).
Требуется найти единичный радиус-вектор преломленного луча Т1. Для решения этой задачи выполним некоторые геометрические построения (рисунок 1).
Рис.1. Преломление
Нанесем еще несколько радиус-векторов (далее мы их все для краткости будем называть векторами).
Искомый вектор T1 равен сумме двух векторов: T1=NT + В.
Найдем вначале вектор NT. Он противоположен по направлению вектору нормали, а его длина равна |T1| cos α2 = cos α2 (поскольку по условию задачи Т1 - единичный). Таким образом, NT = -N1 cos α2. Необходимо определить cos α2. Запишем закон преломления n1 sin α1 = n2 sin α2 в виде:
sin α2 = n sin α1
Воспользуемся тождеством cos2x +sin2x = 1. Тогда
Значение cos α1 можно выразить через скалярное произведение единичных векторов S1 и N1, то есть cos α1 = S1 * N1. Тогда мы можем записать такое выражение для вектора NT:
Осталось найти выражение для вектора В. Он располагается на одной прямой с вектором А, причем А = S1 - NS. Учитывая, что вектор NS равен N1 cos α1, то A = S1 - N1 cos α1. Так как cos α1 = S1 * N1, то A = S1 - N1 (S1 - N1).
Поскольку длина вектора А равна sin α1, a длина вектора В равна sin α2, то
откуда |В| = n|А|. Учитывая взаимное расположение векторов А и В, получим B = -nA = n(N1(S1 * N1) - S1).Теперь мы можем записать искомое выражение для единичного радиус-вектора луча преломления Т1:
Если подкоренное выражение отрицательно, то преломленный луч не существует. Это соответствует так называемому полному внутреннему отражению [1, 2, 3].
Это решение задачи в векторном виде. Используя полученное выражение, можно записать координаты вектора T1.
На следующем шаге мы рассмотрим трассировку лучей.