Симуляция оптических лучей

Веб-приложение с открытым исходным кодом симулируещее отражение и рефракцию света.
Написано на HTML, CSS и JavaScript.

Запустить приложение


Инструменты

ray

Луч

Одиночный луч света определенный двумя точками.
Beam

Пучок

Пучок параллельных лучей исходит из прямой. Плотность лучей конторолируется ползунком "Плотность лучей".
Point Source

Точечный источник

Лучи исходят из точки. Плотность лучей конторолируется ползунком "Плотность лучей".
Mirror

Зеркало

Симулирует отражение света в зеркале.
Mirror (Curved)

Зеркало (Дуга)

Зеркало в форме дуги. Задается тремя точками.
Ideal curved mirror

Идеальное кривое зеркало

Идеальное "кривое" зеркало, которое идеально подчиняется уравнению зеркала (1/p + 1/q = 1/f). Фокальное расстояние задается в пикселях.
Glass

Стекло

Симулирует рефракцию и отражение света на поверхности.
Glass (Other shapes)

Стекло (Другие формы)

Стекло, форма которого состоит из отрезков и дуг. Включает в себя призмы и "сферические" линзы.
Glass (Ideal lens)

Стекло (Идеальная линза)

Идеальная линза, которая строго подчиняется уравнению плоской линзы (1/d + 1/f = 1/F). The focal length (in pixels) can be set directly.
Blocker

Блокатор

Отрезок, поглощающий свет.
Ruler

Линейка

Линейка от нуля до определенной точки. Масштаб в пикселях.
Protractor

Транспортир

Транспортир, нулевое значение которого задается центром и другой точкой. Масштаб в градусах.

Виды отображения

Лучи

Показываются лучи. Когда "плотность лучей" высока, они выглядят как единый пучок.
High density
Low density

Продленные лучи

Показываются и лучи, и их продолжения. Оранжевые лучи - продолжения назад, серые - вперед.
Extended rays

Все изображения

Показываются все изображения. Желтые точки означают реальные изображения, оранжевые - мнимые, серые (нет на данном рисунке) - виртуальные обьекты. Заметьте, что если "плотность лучей" недостаточно велика, некоторые изображения не будут видны.
All images

Видимое наблюдателем

Симулировать лучи и изображения, видимые из какой-то позиции. Синий круг - наблюдатель. Лучи пересекающие его, считаются "видимыми". Наблюдатель не знает где лучи начинаются на самом деле, но может думать, что они начинаются в какой-то точке/точках, если они там пересекаются. Видимые лучи показаны синим, а точки оранжевым.
Seen by obeserver