Разработать оконное приложение, позволяющее моделировать ход световых лучей. На форме находится источник света, из которого вертикально вниз идут лучи заданного цвета. Под источником находится рабочая область. Внутри рабочей области содержаться зеркала и призмы. Луч света, встретившись с зеркалом, отражается от него, при встречи с призмой луч преломляется и распадается на три составляющие: красную, синюю и зеленую. Внизу рабочей области находится приемник света: луч, попавший на приемник, оставляет на нем вертикальную полоску, которая по цвету совпадает с цветом луча. Все объекты на форме можно «модифицировать»: перетаскивать по форме, захватив мышкой; деформировать, растягивая за вершины призм или зеркал. У источника света можно изменять только длину и его можно включать и выключать. Все объекты не должны наезжать друг на друга и покидать границы рабочей области. При наведении указателя мыши на объект должно появиться название объекта. При нажатии правой кнопки мыши на объекте должен появляться диалог с настройками соответствующего объекта (о виде диалогов ниже). В про-грамме обязательно должно присутствовать:
1) Меню с пунктами: а)File: Создать новый документ, Сохранение, Открытие, Выход (при выходе предложить сохранить изменения); б) Объекты: Зеркала (по-является диалог, в котором находится список всех зеркал; при выборе определенного зеркала его состояние отображается в этом же диалоге); Источник; Призмы (появляется диалог, в котором находится список всех призм; при выборе определенной призмы, ее состоянии отображается в этом же диалоге); About.
2) Строка состояния, в которой отображается текущие координаты мыши, и информация в каком объекте находится курсор мыши. Диалоги для настройки объектов. Источник света: составляющие цвета: red, green, blue; длина источника, включить/выключить, положение левого верхнего угла; кнопочки «Принять» и «Отменить». Зеркало: координаты левого и правого концов. Призма: коэффициенты преломления для RGB; количество вершин их координаты, окно предпросмотр (с возможностью деформации призмы). Панель инструментов, которая дублирует меню. Примечание. При открытии диалогов в них уже должна содержаться информация о текущем состоянии выбранного объекта.