Найти в Дзене
Енот-математик

Капелька геометрической алгебры в капле воды

По горячим следам заметки про радугу хочу поделиться некоторыми деталями расчёта рассеивания света на каплях воды. Эта статья играет роль приложения к предыдущему рассказу для особо любопытных.

Так выглядит результат расчёта поля интенсивности рассеянного света с помощью геометрической алгебры.
Так выглядит результат расчёта поля интенсивности рассеянного света с помощью геометрической алгебры.

Напомню, что геометрические алгебры, или алгебры Клиффорда, позволяют оперировать подпространствами — точками, прямыми, плоскостями, — как числами. При этом, наряду со сложением и умножением используется ряд специфических операций: внешнее, внутреннее и регрессивное произведения, а также сопряжение и три инволюции. Всё они имеют тот или иной геометрический смысл и позволяют производить базовые геометрические построения.

Мы будем работать в двумерной двойственной проективной геометрической алгебре, которую принято обозначать PGA² или R*(2,0,1). Она строится с помощью трёх генераторов e₀, e₁ и е₂ и имеет базис из восьми элементов:

-2

Прямые в этой алгебре представляются как векторы, а точки — как бивекторы:

-3

Координаты точки выражаются в однородных координатах, как это принято в проективной геометрии. Для перехода к обычным плоским координатам, надо, если можно, разделить координаты a и b на число c.

В качестве иллюстративного справочника, приведу простой чертёж, показывающий смысл различных произведений:

-4
  • Регрессивное произведение двух точек — прямая проходящая через эти точки.
  • Внешнее произведение двух прямых — точка их пересечения.
  • Внутреннее произведение точки и прямой — прямая ортогональная прямой, проходящая через точку.

Кроме обычных точек и прямых в проективной геометрии есть ещё идеальные объекты. Идеальная прямая — это линия горизонта, она задаётся числом e₀. Пересечение идеальной прямой с любой другой будет идеальной точкой. Её алгебраическое представление — сумма ae₀₁ + be₀₂ соответствует направлению вектора (a, b). В этой же точке будут пересекаться все параллельные прямые, имеющие это же направление. На чертеже идеальные точки, вернее, соответствующие им направления, показаны стрелками. Таким образом, в проективной геометрии все без исключения пары прямых имеют точку пересечения, либо обычную, либо идеальную.

Кроме приведённых выше операций между элементами геометрической алгебры, мы рассматривали три базовых преобразования: отражение, поворот и сдвиг. В геометрической алгебре они выражаются с помощью сопряжения.

-5

Повороты и сдвиги мы обычно выражаем через углы и векторы. В этом случае для сопряжения формируются специальные бивекторы:

-6

Здесь P это ось вращения (точка в двумерном случае), а v -- прямая, задающая направление сдвига. Обратите внимание на то, что сдвиг выражается, как поворот на d/2 вокруг идеальной точки.

В двумерной геометрии, где плоскость вращения единственная, поворот можно выразить проще как произведение:

-7

Имея весь этот инструментарий, мы можем приступить к решению задачи о распространении светового луча, встречающего на своём пути каплю воды. Она распадается на маленькие подзадачи:

  1. Найти точку пересечения луча и окружности (границы капли) и нормаль к границе капли в этой точке.
  2. Вычислить отраженный луч.
  3. Вычислить преломленный луч с учётом коэффициента преломления для воды.
  4. Повторить эти вычисления для луча, распространяющегося внутри капли.

Точки пересечения прямой и окружности можно найти, решая систему уравнений на координаты. Но я хочу показать геометрическое решение, применив универсальные приёмы характерные, для геометрической алгебры.

Расщепление луча на отражённый и преломлённый определяется углом, который этот луч образует с нормалью к окружности в точке пересечения прямой и окружности. Собственно, только нормаль в этой точке нам и понадобится, а тригонометрию и решение уравнений возьмёт на себя геометрическая алгебра.

Для прямой l и окружности радиуса r с центром O, нормали в точках их пересечения можно найти, поворачивая перпендикуляр к прямой l, проходящий через центр окружности, на угол, определяемый расстоянием между центром окружности и прямой l:

-8
-9

Как известно, угол отражения равен углу падения. Имея нормаль в точке пересечения луча и окружности, мы можем отразить относительно неё наш луч, поменяв его направление.

-10

Закон Снеллиуса гласит, что преломлённый луч входит в среду под углом, синус которого равен синусу угла падения, умноженному на коэффициент преломления среды μ. Искомый синус появляется во внешнем произведении луча и нормали, то есть, в выражении для точки пересечения прямой с окружностью P:

-11

Здесь мы предполагаем, что обе прямые нормированы, а P с шапочкой обозначает некий нормированный бивектор. Теперь преломлённый луч можно получить, повернув нормаль относительно точки P на нужный угол, используя "готовый" синус, просто умножив его на показатель преломления:

-12

При выходе из капли не меняется ничего, кроме показателя преломления, который заменяется на 1/μ. При этом под корнем может оказаться отрицательное значение, что соответствует полному внутреннему отражению и отсутствию преломлённого луча.

Вот, собственно, и все вычисления. Осталось только повторить их многократно (тысячи раз) и сформировать из тысяч лучей каустики. Радужная картинка получена из результатов расчётов для лучей с разными коэффициентами преломления, которые были распределены по соответствующим цветовым каналам.