МФТИ 2019 © Чеканов Кирилл, Филипенко Владимир
Описание алгоритма
1. Заданное произвольное отверстие аппроксимируется некоторым клеточным множеством. Для этого алгоритм натягивает сетку на изображение, далее на этой сетке отмечается граница, по которой восстанавливается вписанное клеточное множество. Таким образом, дальнейший алгоритм исследует дифракцию на наборе небольших пикселей (см. рисунок).
2. Создается матрица интенсивностей, каждый элемент которой отвечает за суммарную интенсивность света, идущего в соответствующем направлении от всех пикселей изначальной сетки и собранного линзой в некоторой точке.
Матрица интенсивностей вычисляется следующим образом: Фиксируется некоторое направление, и с учетом разностей фаз суммируются поля от всех пикселей в этом направлении. При этом за пиксель с нулевой начальной фазой берется пиксель, содержащий центр заданного отверстия, который вычисляется по формуле:
Для квадрата с центром в поле в направлении вычисляется следующим образом:
3. Матрица интенсивностей выводится на экран, яркость каждого пикселя пропорциональна значению соответствующего элемента матрицы.
Руководство пользователя
- Для начала работы необходимо изобразить в окне границы исследуемого отверстия(замкнутые кривые без самопересечений) с помощью мыши и зажатой ЛКМ.
- Для вывода на экран дифракционной картины от заданного отверстия нажмите кнопку "Calc!".
- Для очистки экрана нажмите кнопку "Clean".
Примеры ввода/вывода