В наше время ни один человек не может обойтись без компьютера. Не зря говорят, что наш век – век компьютеризации. В каждом доме, в каждом офисе стоит компьютер, даже путешествуя, человек не забывает взять с собой ноутбук.
Компьютер стал для многих людей верным помощником в работе и досуге. Он позволил совершить скачок в организации промышленности, науки и рынка.
Каждый час компьютерные технологии совершенствуются, они становятся все более удобными и безопасными для здоровья человека. Теперь можно использовать в своей работе уже готовые программные продукты, позволяющие экономить время и соответственно деньги, работать на дальнем расстоянии.
Компьютеры используют и в целях физических испытаний, демонстраций. Именно поэтому я решил создать программу, которая демонстрирует преломление лучей на границе раздела двух сред.
1.1. Цель разработки
Целью создания курсовой работы является разработка программного продукта, который выполняет демонстрацию явления преломления лучей на границе раздела двух сред.
1.2. Постановка задачи разработки программного продукта
Необходимо разработать программный продукт с удобным интерфейсом, позволяющий выполнить демонстрацию преломления луча в зависимости от угла падения и свойств сред.
1.3. Функциональные требования к программному продукту
Программный продукт должен правильно работать при любых корректно заданных исходных данных. В случае неправильного ввода исходных данных должно быть предложено повторить ввод. Исходные данные должны вводиться как с клавиатуры, так и из файла.
При выполнении операции расчета угла преломления входными данными являются показатели преломления сред и угол падения. Входные данные поступают либо с клавиатуры, либо из файла.
Выходными данными является угол преломления луча. Выходные данные выводятся на экран монитора и в файл.
Для реализации данной программы я выбрал Турбо Паскаль 7.0. Эта версия позволила объединить в рамках единой системы мощный алгоритмический потенциал языка, методы объектно-ориентированного программирования, графику, удобные средства тестирования и отладки программ, а также обеспечить дружественный интерфейс с пользователем. Паскаль способствует внедрению современной технологии программирования, основанной на принципах структурного программирования и пошаговом методе проектирования программ. Он очень удобен для решения задач вычислительного и логического характера, обработки строк и системного программирования. Развитая система типов позволяет разрабатывать адекватные представления структур данных практически для любой задачи. В то же время существующие в Турбо Паскале средства преобразования типов дают возможность гибко манипулировать различными данными. Основные операторы языка являются хорошей иллюстрацией базовых управляющих конструкций структурного программирования. Их использование позволяет записывать сложные алгоритмы обработки данных в компактной форме. Большую помощь программистам оказывает библиотека стандартных программ Турбо Паскаля. Эта библиотека модернизируется и пополняется уже более 5 лет. В нее входят средства для работы с оперативной и внешней памятью, клавиатурой, дисплеем и другими внешними устройствами ПЭВМ. Система программирования Турбо Паскаля поддерживает модульный принцип программирования, который лежит в основе всех современных технологий разработки программ. Также хорошо выполнена справочная система. В среду встроен многофункциональный отладчик, позволяющий проводить пошаговое выполнение программы, генерировать условные и безусловные точки остановок. Общепризнанно, что среда системы программирования ТП играет роль эталона для программных продуктов этого типа. Опираясь на все вышесказанное, можно утверждать, что система программирования ТП еще много лет будет незаменимым инструментом и полезным партнером для тех, кто программирует на универсальных алгоритмических языках.
Рассмотрим падение плоской волны на границу, разделяющую две прозрачные однородные диэлектрические среды с показателями преломления
и . Будем считать, что граница представляет собой плоскость (так как в пределах бесконечно малой области любую поверхность можно считать плоской). Будем также считать, что сама граница раздела свет не поглощает.После прохождения границы раздела двух сред падающая плоская волна (луч
) разделяется на две волны: проходящую во вторую среду (луч ) и отраженную (луч ) (рис.1)Рис.3.1. Преломление и отражение света на границе двух сред.
На рис.1. N – вектор нормали к поверхности в точке падения единичной длины
. Поместим начало координат в точку падения. Определим следующие величины:Угол падения
– это угол между лучом , падающим на преломляющую или отражающую поверхность, и нормалью к поверхности в точке падения.Угол преломления
– это угол между преломленным лучом и нормалью к поверхности в точке преломления.Угол отражения
– это угол между отраженным лучом и нормалью к поверхности в точке отражения.После прохождения светом границы раздела двух сред необходимо определить направление распространения преломленной волны
и отраженной волны , и распределение энергии между отраженной и преломленной волной.В соответствии с уравнением плоской волны запишем выражения для комплексных амплитуд падающей, отраженной и преломленной волн:
уравнение падающей плоской волны
уравнение преломленной плоской волны
уравнение отраженной плоской волны
где , , – оптические векторы падающей, отраженной и преломленной волн, – волновое число, – радиус-вектор произвольной точки.Здесь мы используем соотношения скалярной теории, поскольку закон преломления одинаков для векторных и скалярных волн.
Из уравнений падающей и преломленной плоской волны следует, что на границе раздела двух сред у падающей и преломленной волн амплитуды могут быть различны, но должны совпадать значения эйконалов (этого требует условие физической реализуемости, так как иначе волна будет иметь разрыв на границе раздела):
Это равенство соблюдается на границе раздела, то есть для всех
, перпендикулярных вектору нормали. Таким образом, выражение можно записать в виде: при или: приТо есть
, если . Выполнение этих условий возможно тогда и только тогда, когда . Таким образом, можно вывести формулировки закона преломления в векторной форме: