Симуляция оптических лучей
Веб-приложение с открытым исходным кодом симулируещее отражение и рефракцию света.
Написано на HTML, CSS и JavaScript.
Запустить приложение
Луч
Одиночный луч света определенный двумя точками.
Пучок
Пучок параллельных лучей исходит из прямой. Плотность лучей конторолируется ползунком "Плотность лучей".
Точечный источник
Лучи исходят из точки. Плотность лучей конторолируется ползунком "Плотность лучей".
Зеркало
Симулирует отражение света в зеркале.
Зеркало (Дуга)
Зеркало в форме дуги. Задается тремя точками.
Идеальное кривое зеркало
Идеальное "кривое" зеркало, которое идеально подчиняется уравнению зеркала (1/p + 1/q = 1/f). Фокальное расстояние задается.
Стекло
Симулирует рефракцию и отражение света на поверхности.
Стекло (Другие формы)
Стекло, форма которого состоит из отрезков и дуг. Включает в себя призмы и "сферические" линзы.
Стекло (Идеальная линза)
Идеальная линза, которая строго подчиняется уравнению плоской линзы (1/d + 1/f = 1/F). The focal length can be set directly.
Блокатор
Отрезок, поглощающий свет.
Линейка
Линейка от нуля до определенной точки.
Транспортир
Транспортир, нулевое значение которого задается центром и другой точкой. Масштаб в градусах.
Виды отображения
Лучи
Показываются лучи. Когда "плотность лучей" высока, они выглядят как единый пучок.
Продленные лучи
Показываются и лучи, и их продолжения. Оранжевые лучи - продолжения назад, серые - вперед.
Все изображения
Показываются все изображения. Желтые точки означают реальные изображения, оранжевые - мнимые, серые (нет на данном рисунке) - виртуальные обьекты. Заметьте, что если "плотность лучей" недостаточно велика, некоторые изображения не будут видны.
Видимое наблюдателем
Симулировать лучи и изображения, видимые из какой-то позиции. Синий круг - наблюдатель. Лучи пересекающие его, считаются "видимыми". Наблюдатель не знает где лучи начинаются на самом деле, но может думать, что они начинаются в какой-то точке/точках, если они там пересекаются. Видимые лучи показаны синим, а точки оранжевым.