Научная статья на тему 'Программа моделирования движения планет в соответствии с законами Кеплера'

Программа моделирования движения планет в соответствии с законами Кеплера Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
3461
282
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ГЕОКУПОЛ / ЗАКОНЫ КЕПЛЕРА / МОДЕЛИРОВАНИЕ ДВИЖЕНИЯ / ОРБИТА / СОЛНЕЧНАЯ СИСТЕМА / ТРАССИРОВКА ЛУЧЕЙ / ТРИАНГУЛЯЦИЯ

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Антон Владимирович. Желудков, Андрей Владимирович Куров

Рассмотрена программа моделирования движения планет Солнечной системы в соответствии с законами Кеплера. Для визуального представления использован метод обратной трассировки лучей, для повышения быстродействия проведена его модернизация. В программе использовано аналитическое представление объектов, а также представление в виде геокупола полигональная аппроксимация поверхностей. Приведен алгоритм моделирования движения планет, рассмотрен интерфейс программы. Проведены исследования, показавшие предпочтительность использования модернизированного варианта трассировки лучей, приведены результаты исследования временных характеристик работы алгоритма в зависимости от качества получаемого изображения и размеров окна вывода.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «Программа моделирования движения планет в соответствии с законами Кеплера»

3 По строению (имеют) стержень 1-5, 7, 9, 11, 13, 14, 16-18, 22, 23, 25, 29, 30, 31

распорный элемент 1, 3, 9, 10, 12, 14, 16, 20, 25, 26, 27, 28, 29, 31

шляпка (крышка) 7, 9, 11, 16, (17), 28, 30

головка 5-8, 10, 15, 17-19, 21, 31

сердечник (штифт) 6, 9, 16, (19)

анкер 13

втулка (шайба) 12, 13, 15, 16, 20, 21, (9), 27, 29, (30)

гильзообразный элемент 26, 28

гайка 27

4 Область использовани я машиностроение и строительство 5, 15, 21, 27, 28, 30

Строительство: -крепление к бетону, кирпичной кладке 1, 9, 16, 22, 27, 28, 29, 30

-крепление фасадных конструкций, подвесных потолков, металлических каркасов 2, 27, 28, 29, 30, 31

-эксплуатация зданий и сооружений 3, 6, 14, 27, 28, 30

-крепление теплоизоляционного материала и плит к стенам зданий и сооружений 4, 7, 9, 10, 12, 16, 17, 20, 23, 25, 26, 27, 28, 30, 31

-крепление к строительным конструкциям 18, 26, 27, 28, 29, 30, 31

-изоляционные панели на несущем основании 11, 13, 24, 27, 28, 30, 31

5 Ожидаемый эффект повышение надежности 1, 2, 5, 7-10, 15, 16, 21,25, 26, 27, 30

повышение несущей способности 2, 3, 10, 14, 23

повышение технологичности 4, 5, 9, 16, 20, 30

упрощение монтажа 6, 7, 9, 11, 13, 14, 16, 17, 26, 27, 29, 30

повышение качества монтажа 6, 17, 28, 30, 31

повышение коррозионной стойкости 17, 30

повышение скорости и легкости сборки 22, 30

снижение затрат на изготовление 13, 29

Анализ просмотренных изобретений показал, что 20 % изделий могут быть использованы в машиностроении и строительстве, остальные - только в строительстве (в основном, для крепления теплоизоляционного материала и плит к стенам зданий и сооружений). Нужно отметить, что большинство изделий является составными (изготовлены из композиционных, полимерных материалов и стали), и лишь около 16 % - это одноэлементные металлические изделия. Около половины крепежных изделий упрощают монтаж, при этом повышая надежность.

© Елесина В.В., Пыхтунова С.В., 2016

УДК 004.928

Антон Владимирович. Желудков, магистрант МГТУ им. Н.Э.Баумана г.Москва, РФ E-mail: zantonv@mail.ru Андрей Владимирович Куров, канд. техн. наук, доцент МГТУ им. Н.Э.Баумана

г.Москва, РФ E-mail: avkur7@mail.ru

ПРОГРАММА МОДЕЛИРОВАНИЯ ДВИЖЕНИЯ ПЛАНЕТ В СООТВЕТСТВИИ

С ЗАКОНАМИ КЕПЛЕРА

Аннотация

Рассмотрена программа моделирования движения планет Солнечной системы в соответствии с законами Кеплера. Для визуального представления использован метод обратной трассировки лучей, для повышения быстродействия проведена его модернизация. В программе использовано аналитическое представление объектов, а также представление в виде геокупола - полигональная аппроксимация поверхностей. Приведен алгоритм моделирования движения планет, рассмотрен интерфейс программы.

_МЕЖДУНАРОДНЫЙ НАУЧНЫЙ ЖУРНАЛ «СИМВОЛ НАУКИ» №10-2/2016 ISSN 2410-700Х_

Проведены исследования, показавшие предпочтительность использования модернизированного варианта трассировки лучей, приведены результаты исследования временных характеристик работы алгоритма в зависимости от качества получаемого изображения и размеров окна вывода.

Ключевые слова

Геокупол, законы Кеплера, моделирование движения, орбита, Солнечная система,

трассировка лучей, триангуляция.

Графическое представление информации существенным образом упрощает взаимодействие человека с компьютером, а также помогает решать различные задачи, в которых необходимо наглядное представление информации. Это особенно актуально в сферах образования и науки, т.к. именно в них эффективность работы человека напрямую зависит от скорости осмысления полученных данных, которая, в свою очередь, определяется наглядностью представления анализируемого материала.

Примером использования графической информации в процессе обучения может служить рассматриваемая в статье программа моделирования движения планет в соответствии с законами Кеплера. Данная программа позволяет моделировать движение планет Солнечной системы и представлять в наглядной форме результаты эксперимента с использованием современных алгоритмов компьютерной графики даже на маломощных машинах. Она может применяться в учебных заведениях для демонстрации некоторых законов небесной механики и получения начальных сведений о строении Солнечной системы.

Для обеспечения большей наглядности представления информации размеры небесных тел и их реальные расстояния от Солнца промасштабированы с разными коэффициентами, однако, наклон орбит планет и скорость их движения и вращения сохранены. Данное приближение является оправданным, т.к. оно способствует достижению поставленной цели. Программа разрабатывалась с учетом обеспечения приемлемого качества изображения при минимизации количества вычислительных ресурсов. Это обусловлено тем, что по статистическим данным в большинстве учебных заведений стран бывшего СССР, к сожалению, стоят устаревшие маломощные компьютеры. Для достижения поставленной цели необходимо было решить следующие задачи:

• провести анализ необходимых для моделирования имеющихся справочных данных для выделения корректных,

• разработать наиболее скоростной алгоритм, реализующий моделирование движения планет в соответствии с законами Кеплера,

• реализовать выбранный алгоритм таким образом, чтобы он обеспечивал наилучшую скорость работы (определяется количеством кадров в секунду) при минимальных потерях в качестве при демонстрации результатов моделирования на экране графического дисплея.

Моделирование объектов сцены

Данные для проведения моделирования (параметры планет) были взяты из [5] Для визуализации объектов сцены был выбран алгоритм обратной трассировки лучей, т.к. он обладает очень важным для достижения поставленной цели качеством - универсальностью использования (позволяет решать целый ряд задач: выполнять удаление невидимых поверхностей, получать реалистические изображения любых (не только выпуклых) объектов). Сложность и количество вычислений можно уменьшить за счет учета особенностей решаемой задачи. В итоге был реализован стандартный алгоритм трассировки лучей и разработан адаптированный вариант для увеличения быстродействия.

Анализ способов представления объектов показал, что можно использовать полигональную (в большинстве случаев полигоны представлены треугольниками) или аналитическую модель. На практике в подавляющем большинстве случаев применяется первый способ, обладающий целым рядом преимуществ, таких как: совместимость с основными алгоритмами построения сцен, возможность масштабирования тел без увеличения сложности расчётов, возможность описания алгоритмов взаимодействия тел друг с другом, возможность изменения качества аппроксимации тел.

Второй способ также имеет несколько достоинств: при существенной простоте реализации и лёгкости разбиения на потоки позволяет получить изображение высокого качества, требует гораздо

_МЕЖДУНАРОДНЫЙ НАУЧНЫЙ ЖУРНАЛ «СИМВОЛ НАУКИ» №10-2/2016 ISSN 2410-700Х_

меньшего количества необходимых расчётов при выполнении операций переноса, поворота, масштабирования тела.

Для исследования быстродействия были реализованы оба варианта представления тел, динамически переключаемых между собой в процессе выполнения программы для каждого из выбранных алгоритмов: представление в аналитическом виде для стандартной версии алгоритма обратной трассировки и в виде множества треугольников для модифицированной версии.

Моделируемые в программе законы Кеплера [1,4,5] представляют собой три эмпирических соотношения, описывающих идеализированную гелиоцентрическую орбиту планеты. Согласно первому закону каждая планета Солнечной системы обращается по эллипсу, в одном из фокусов которого находится Солнце. Второй закон утверждает, что каждая планета движется в плоскости, проходящей через центр Солнца, причём за равные промежутки времени радиус-вектор, соединяющий Солнце и планету, описывает равные площади. Каждая планета на своей орбите имеет ближайшую к Солнцу точку (перигелий) и наиболее удаленную точку (афелий), причем, двигаясь вокруг Солнца неравномерно, планета имеет большую линейную скорость в перигелии, чем в афелии.

Рисунок 1 - Иллюстрация второго закона Кеплера

Согласно третьему закону Кеплера квадраты периодов обращения планет вокруг Солнца относятся,

Т2 а3

как кубы больших полуосей орбит планет:-^ = Цт, где Т

и Т — периоды обращения двух планет вокруг

Т2 а2

Солнца, а а1 и а2 — длины больших полуосей их орбит.

Ньютон позднее установил, что третий закон Кеплера не совсем точен: в него входит и масса

Т12 .(м+т) а3

планеты: —-—--- = —, где М — масса Солнца, а т и т — массы планет.

Т2 .(м + т2) а23 1 2

Для моделирования движения с учетом необходимости сокращения процессорного времени при проведении расчетов введена специальная сущность - орбита, представляемая в виде массива точек, принадлежащих эллипсу. У каждой орбиты есть атрибут, в котором хранится время dT, требуемое для перехода планеты из предшествующего положения на орбите в следующее. Это время одинаково для каждой из точек орбиты и равно периоду обращения планеты (времени, за которое планета совершает полный оборот вокруг Солнца), делённому на количество точек, аппроксимирующих орбиту. Однако, согласно второму закону Кеплера, в таком случае распределение точек не является равномерным. Для определения положения точек на орбите был разработан соответствующий алгоритм, в котором эллипс

2 2 х У

(уравнение эллипса с центром в начале координат — Н—- = 1) делится на 4 части (рис. 2):

а Ь

Рисунок 2 - Области эллипса при моделировании второго закона Кеплера

Для первой части площадь области будет состоять из комбинации площадей 2-х фигур (рис. 3, где F - фокус эллипса, ибо именно в нём располагается Солнце, согласно 1-му закону Кеплера): площади красного участка эллипса и синего треугольника.

Рисунок 3 - Схема вычисления площади, покрываемой радиус-вектором Площадь треугольника можно найти следующим образом:

1. Рассматривается треугольник с вершинами р (Xi, Yi, Zi), р 1 ( X 1, У]_ 1, Zi_ 1), Ре (Хе, Уе, Хе), где р - координаты текущей точки траектории, р 1 - координаты предшествующей точки траектории, Ре - координаты фокуса, в котором находится Солнце.

2. Из выражения L = — находятся длины всех сторон

треугольника, которые обозначены через а, Ь, с.

3. По формуле Герона вычисляется площадь Si данного треугольника:

$ =%1 Р'(Р-а)'(Р-Ь)'(Р-с) , где р

а + Ь + с

2

- полупериметр треугольника

Площадь красного участка эллипса вычисляется согласно выражениям (1) и (2):

( х,

участка

V Х1

[ — V а2 - л2с!х

Л /7

Л

(

х,

- ^р --

2 - а

4

\

л -V а - л + а - arcsin I —

I а,

- $тР ,(1)

где 8тр. - площадь зелёной трапеции, вычисляемая согласно (2):

s =

тр

Y + Y2 ).(X2 - X! )

(2)

2

Для второй части эллипса проводятся аналогичные вычисления, но интегрирование и вычисление площади трапеции ведётся с учетом обмена местами переменных Y и X. Третья часть эллипса аналогична первой, а вторая аналогична четвертой с точностью до знаков функций и порядка расположения пределов интегрирования. Итоговый алгоритм выглядит следующим образом:

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

1. Равномерно распределить определённое количество точек N по орбите, используя заданный шаг изменения переменной X (переменной Y) и алгоритм аппроксимации эллипса, согласно его уравнению.

2. Определить время dT, равное Tsun/N, где Tsun - период обращения планеты вокруг Солнца, N -количество точек, аппроксимирующих орбиту.

3. Определить площадь Si, которую должен иметь каждый сектор, путём деления площади эллипса

S3 на N. S3 = п -a-b, где a, b - полуоси эллипса.

4. Используя метод половинного деления, скорректировать положения точек на орбите, чтобы площадь каждого сектора была равна Si.

В представленном алгоритме для удобства расчётов положения точек орбиты определяются до поворота её в пространстве. Орбита не задаётся аналитически, т.к. это серьёзно увеличило бы нагрузку на систему при моделировании, в то время как все вышеприведённые расчёты выполняются предварительно.

Алгоритм передвижения планеты

1. Выставить таймер Time, равный минимуму из dT и dTr - времени, когда планета должна повернуться на заданный угол вокруг своей оси и запустить его. При этом действие, соответствующее минимальному времени (перемещение или поворот), запоминается.

2. Отнять от dT и dTr вычисленное минимальное значение и времена, равные 0 с точностью порядка 0.01. Обновить данные, т.е. dTr сделать исходным, а dT взять из следующей точки орбиты.

3. Начать процесс моделирования

3.1 Выполнить при срабатывании таймера Time запомненное ранее действие (движение по орбите или вращение).

3.2 Выполнить пункты 1 и 2 данного алгоритма.

4. Конец алгоритма.

Триангуляция объектов моделирования

Для триангуляции сферы выбран обычно использующийся для решения такой задачи алгоритм построения геодезического купола [2]. В основе геокупола лежат Платоновы тела. Здесь рассматривается наиболее распространенный вариант построения, использующий только икосаэдр, представляющий собой правильный многогранник, состоящий из 12 вершин и 30 одинаковых ребер, которые создают 20 равносторонних треугольников.

1. Изначально строится икосаэдр с длиной ребра 2, координаты вершин которого задаются

формулами: (0, ±1, ±(), (±1, ±(,0), (±(,0, ±1), где ( = 1 .

Радиус сферы, в которую вписан подобный икосаэдр, приблизительно равен ricosahedron = 1.9. Потом данная фигура (все вершины) масштабируется, и её центр совмещается с центром аппроксимируемой сферы радиусом r sphere, т.е. новые координаты вершин определяются согласно выражениям:

xnew = xold ' k + xc у new = УоМ • k + yc

z = z u • k + z

new old c

гДе: xnew ,y

new ? J new ? new

новые координаты вершины,

xold, У old, Zold - старые координаты вершины, r _ sphere

k =- - масштабный коэффициент.

r _ i cos ahedron

xc, yc, zc - координаты центра аппроксимируемой сферы.

В итоге получаем икосаэдр, вписанный в аппроксимируемую сферу, т.е. все его вершины лежат на поверхности сферы (см. рис. 4).

Рисунок 4 - Икосаэдр, вписанный в сферу

2. Выбирается один из треугольников икосаэдра и разбивается на равносторонние треугольники. В нашем случае разбивка происходит в пятой частоте, т.е. выбранный треугольник икосаэдра делится на 5 "рядов" более мелких треугольников (рис. 5). Под частотой разбивки понимают плотность разбивки купола на треугольники, т.е. один и тот же купол можно "описать" разным количеством треугольников.

Рисунок 5 - Разбивка грани исходного икосаэдра

3. На этом этапе строятся отрезки от вершин всех получившихся треугольников до поверхности сферы. Отрезки строятся перпендикулярно плоскости сферы, т.е. фактически продлевается отрезок, соединяющий центр сферы и вершину получившегося треугольника, до пересечения с поверхностью сферы (см. рис. 6).

Рисунок 6 - Построение прямых, соединяющих центр с вершинами треугольников

4. Соединяются все вершины отрезков, лежащие на поверхности сферы. Получается структура из треугольников, вершины которых "вписаны" в поверхность сферы. Поскольку треугольники икосаэдра равны (равносторонние), то, создав "проекцию" на сферу одного из них, простым копированием построения для всех остальных получаем желаемый геодезический купол или сферу (рис. 7).

Рисунок 7 - Получение поверхности сферы, аппроксимированной большим количеством треугольников

Модификация алгоритма трассировки лучей

Для увеличения быстродействия в программе реализована модернизированная версия алгоритма обратной трассировки лучей. Суть модернизации состоит в том, что лучи проходят не через каждый пиксель, а через точки, аппроксимирующие полигоны объектов сцены. При этом продолжает выводиться точка, ближайшая к наблюдателю. Необходимо отметить, что в данной модификации все объекты сцены уже не могут быть представлены аналитически. Модификация алгоритма обратной трассировки лучей выглядит следующим образом:

1. Цикл по всем полигонам сцены.

2. Генерация луча из точки наблюдения, проходящего через точку, аппроксимирующую данный полигон (для треугольника - это точка пересечения медиан).

3. Нахождение точки пересечение луча со всеми объектами сцены, исключая пересечение с рассматриваемым полигоном: если такого пересечения нет, точка видима, иначе выполнить следующий шаг цикла.

4. Вычисление в случае видимости точки ее интенсивности согласно заданной модели освещения.

5. Высвечивание полигона с найденной интенсивностью в соответствии с заданным ему цветом при наложении текстур.

6. Конец цикла.

Определение интенсивности точки на поверхности объекта осуществляется согласно глобальной модели освещения Уиттеда [3]:

kd ■ Is ■ cos (в) + к2 ■ Is •(cos (g))"

1 - k ■1s + d+K

где: ка - коэффициент рассеянного отражения, kd- коэффициент диффузного отражения, кг-коэффициент зеркального отражения, Is— интенсивность источника, в - угол между вектором падения луча (L) и нормалью к поверхности (п), ос - угол между вектором отражения (R ) и вектором

наблюдения (S ), d - расстояние между источником и точкой на поверхности, К - некоторая константа.

Наложение текстур

Сначала рассмотрим наложение текстур для объектов, представленных аналитически. При данном представлении фактическое наложение происходит при определении цвета точки [2, 3]. Алгоритм выглядит следующим образом:

1. Преобразовать координаты точки к исходным, т.е. координатам, которые она имела до выполнения преобразований (перенос, масштабирование, поворот) над объектом путём умножения её координат на обратную матрицу преобразований. Следует отметить, что для повышения производительности эта обратная матрица не вычисляется аналитически для каждой точки объекта, а обновляется, как и обычная матрица преобразований, при каждом преобразовании, путём умножения её справа на матрицу поворота на обратный угол. Перенос и масштабирование при данной форме представления не отслеживаются, т.к. координаты точек объекта корректируются относительно его центра.

2. Преобразовать полученные координаты точки к координатам в текстурной системе

координат.

3. Получить цвет точки с вычисленными в пункте 2 координатами.

Для представления объектов в виде множества многоугольников (в текущем случае треугольников) наложение текстур выполнятся одноразово при инициализации объекта:

1. Цикл по всем полигонам объекта.

2. Преобразование координаты точки, аппроксимирующей текущий полигон, к координатам в текстурной системе координат.

3. Запоминание цвета полученной точки как цвета текущего полигона.

4. Конец цикла.

Описание интерфейса программы

Рассматриваемая программа реализована на языке программирования высокого уровня C++ в составе кроссплатформенной среды визуального программирования Qt, при этом был использован объектно-ориентированный подход.

Данный язык был выбран благодаря тому, что он поддерживает парадигму объектно-ориентированного программирования, обеспечивает модульность, раздельную компиляцию, обработку исключений, абстракцию данных, объявление типов (классов) объектов, виртуальные функции. Стандартная библиотека включает, в том числе, общеупотребительные контейнеры и алгоритмы. Следует также отметить удобство языка C++, состоящее в сочетании свойств как высокоуровневых, так и низкоуровневых языков.

Кроме того, среда визуального программирования Qt предоставляет большое количество стандартных визуальных компонентов для создания интерфейса, и ряд библиотек с различными часто используемыми полезными функциями.

Главное окно программы представлено на рис.8. Назначение элементов этого окна:

• Слайдер "высокая детализация/низкая детализация" позволяет в режиме реального времени переключаться между стандартным алгоритмом обратной трассировки лучей (высокая детализация) и его модифицированной версией (низкая детализация).

_МЕЖДУНАРОДНЫЙ НАУЧНЫЙ ЖУРНАЛ «СИМВОЛ НАУКИ» №10-2/2016 ISSN 2410-700Х_

• Кнопка ".Настройки " открывает окно с настройками программы.

• Кнопка "Сделать снимок экрана" делает снимок моделируемой области окна и сохраняет его в папку pictures, расположенную в корневой папке программы.

• Кнопка "Полноэкранныйрежим " переводит приложение в полноэкранный режим работы.

• Слайдер "масштабирование" позволяет приближать/удалять камеру от моделируемых объектов (центр масштабирования - центр Солнца).

• Надпись FPS выводит текущее количество кадров в секунду.

• Слайдер "Движение камеры ОХ" позволяет перемещать камеру вдоль оси ОХ, т.е. вправо или

влево.

Рисунок 8 - Главное окно программы.

• Слайдер "Движение камеры ОУ" позволяет перемещать камеру вдоль оси ОУ, т.е. вверх или вниз.

• Окно визуализации предназначено для вывода результатов моделирования.

• Кнопка "Приостановить моделирование" позволяет приостановить моделирование, при этом возможность управления камерой остаётся.

• Кнопка "Возобновить моделирование" позволяет возобновить моделирование с момента последнего его останова. Если останова не было - ничего не делает.

• Кнопка "Начать моделирование заново" запускает моделирование с самого начала, т.е. с момента парада планет 2 февраля 1962 года.

• Ручки "Поворот камеры " позволяют поворачивать камеру вокруг соответствующих осей. Рядом с названием оси подписан угол текущего поворота

_МЕЖДУНАРОДНЫЙ НАУЧНЫЙ ЖУРНАЛ «СИМВОЛ НАУКИ» №10-2/2016 ISSN 2410-700Х_

• Кнопка "Провести демонстрацию" запускает демонстрационный режим, в котором пользователю предоставляется возможность просто полюбоваться нашей Солнечной системой.

• Кнопка "Пояснения" открывает окно с информацией о производимом моделировании и о законах Кеплера.

• Поле "Датамоделирования" выводит моделируемую дату.

Окно настроек выглядит следующим образом:

Рисунок 9 - Окно настроек программы.

• Слайдер "Уровень качества при низкой детализации" позволяет при низкой детализации настроить соотношение качество/производительность (чем правее размещён слайдер, тем выше качество и меньше производительность).

• Флажок "Использовать освещение" позволяет включить/отключить модель освещения в программе (если флажок установлен, то модель освещения используется).

• Флажок "Вращение планет (кроме Солнца)" позволяет включить/отключить вращение планет при моделировании, за исключением Солнца (если флажок установлен, то вращение демонстрируется).

• Флажок "Показывать FPS" позволяет показать/скрыть элемент FPS в главном окне программы.

• Флажок "Движение планет (кроме Солнца)" позволяет включить/отключить движение планет при моделировании, за исключением Солнца (если флажок установлен, то движение демонстрируется).

• Пункт "Угол видимого поворота планеты" позволяет установить угол, на который повернётся планета в заданный момент времени, т.е. сделать вращение дискретным. Этот пункт актуален при активном флажке "Вращение планет (кроме Солнца)".

• Слайдер "Точность моделирования орбиты" позволяет установить уровень дискретности при моделировании движения планет. Этот пункт актуален при активном флажке "Движение планет (кроме Солнца)".

• Кнопка "Отменить" отменяет внесённые изменения и закрывает окно настроек.

• Кнопка "Применить" применяет внесённые изменения и закрывает окно настроек.

• Пункт "Вытянутость орбиты по горизонтали" позволяет установить параметр эллипса «а» для каждой из орбит. Этот пункт введён для возможности наглядной демонстрации законов Кеплера.

_МЕЖДУНАРОДНЫЙ НАУЧНЫЙ ЖУРНАЛ «СИМВОЛ НАУКИ» №10-2/2016 ISSN 2410-700Х_

Результаты исследований

Характеристики машины, на которой проводились измерения: процессор Intel Core i7, память: 6Гб ОЗУ, ОС windows 7 spl.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

Был выполнен анализ алгоритмов по временному показателю, а именно времени подготовки следующего кадра при моделировании. Результаты измерений представлены на рис.10. По оси ОХ на нём отложена ширина окна для отображения результатов моделирования в пикселях. Высота окна во всех измерениях одинакова и равна 401 пикселю. По оси ОУ отложено измеренное количество кадров в секунду. Под качеством изображения в модернизированной версии алгоритма здесь и в дальнейшем подразумевается параметр V триангуляции сферы, т.е. количество "рядов", на которое делится один из треугольников икосаэдра.

Рисунок 10 - Зависимость времени подготовки кадра от ширины окна Результат сравнительного анализа реализованных алгоритмов представлен на рис.11:

Рисунок 11 - Зависимость времени подготовки кадра от ширины окна для изображений

различного качества

_МЕЖДУНАРОДНЫЙ НАУЧНЫЙ ЖУРНАЛ «СИМВОЛ НАУКИ» №10-2/2016 ISSN 2410-700Х_

Анализ представленных графиков позволяет сделать вывод, что модернизированный алгоритм имеет производительность, зависящую не от размеров сцены, а от выбранного качества изображения. Производительность стандартной реализации алгоритма обратной трассировки лучей напрямую зависит от разрешения экрана моделирования. Также не остаётся сомнений, что модернизированная версия алгоритма с качеством изображения 7 даёт стабильный результат — 24 кадра в секунду. А это более 9500 тысяч треугольников сцены. При этом получается качество изображения, вполне достаточное для решения поставленной задачи, а именно моделирования движения планет в соответствии с законами Кеплера. Ниже на рисунках 12 и 13 представлен пример работы программы по демонстрации положения планет на орбите на момент времени 26.03.1962 18.45 с использованием стандартного и модифицированного (с качеством изображения 7) алгоритмов трассировки лучей.

Рисунок 12 - Демонстрация положения планет на орбите 26.03.1962 18.45 с использованием стандартного алгоритма трассировки лучей

Рисунок 13 - Демонстрация положения планет на орбите 26.03.1962 18.45 с использованием модифицированного алгоритма трассировки лучей с качеством изображения 7

_МЕЖДУНАРОДНЫЙ НАУЧНЫЙ ЖУРНАЛ «СИМВОЛ НАУКИ» №10-2/2016 ISSN 2410-700Х_

Заключение

Реализованная программа полностью решает поставленные задачи, а именно:

• позволяет производить моделирование движения планет в соответствии с законами Кеплера и наглядное представление результатов этого эксперимента.

• предоставляет возможность гибкой настройки соотношения производительности и качества изображения, что позволяет использовать программу как на маломощных компьютерах, так и на крупных ЭВМ в обучающих центрах с получением картинки очень высокого качества.

Разработанное программное обеспечение обладает такими преимуществами, как:

• Мультиплатформенность, достигнутая за счёт использования средств разработки Qt.

• Возможность проведения частичного моделирования путём отключения/включения в настройках опций вращения планет, их перемещения и т.д.

• Наличие возможности в любой момент времени приостановить моделирование или начать его заново. При этом при приостановке можно рассмотреть текущую сцену со всех точек зрения, т.е. провести наблюдение с любого необходимого угла.

Также имеется широкая область, в которой может применяться разработанная модернизация алгоритма обратной трассировки лучей, дающая значительное количество преимуществ:

• Возможность в режиме реального времени выводить промежуточные результаты создаваемой сцены с минимальным отклонением результата от получаемого при использовании стандартного алгоритма обратной трассировки.

• Возможность с меньшими, по сравнению с необходимостью дополнительной реализацией других алгоритмов (например, z-буфера), модификациями кода реализовать стабильную работу программы на компьютерах разной мощности.

• Возможность при реализации других алгоритмов, требующих триангуляции объектов (например, z-буфера), использования разработанной модификации для проверки корректности получаемого результата и поддержки стабильной работы программы на компьютерах разной мощности.

Переход к разработанной модификации алгоритма обратной трассировки лучей можно совершить при меньших, по сравнению с полноценной реализацией другого алгоритма, изменениях в коде при изначальной работе практически с любым используемым на сегодняшний день алгоритмом визуализации. Это позволяет быстро и с меньшими дополнительными затратами уже на ранних этапах разработки получать изображение готовой сцены с использованием освещения, тенями, эффектами отражения, прозрачности и т.д. Для получения этих возможностей достаточно подключить необходимые модули с реализацией модификации алгоритма обратной трассировки лучей из данной работы к любому разрабатываемому проекту на языке С++. При этом гибкая структура программы позволяет добавлять или исключать модули освещения и других эффектов по желанию разработчика.

Список использованной литературы

1. Ипатов С. И.. Миграция небесных тел в Солнечной системе. М.: Едиториал УРСС, 2000. - 320 с.

2. Порев В.Н. Компьютерная графика.-СПб.: БХВ-Петербург, 2005. - 432 с.

3. Роджерс Д. Алгоритмические основы машинной графики: Пер. с англ. - М.: Мир, 1989. - 512 с.

4. Смородинский Я. A. Планеты движутся по эллипсам // Квант. -1979. — № 12. — С. 13—19.

5.Физика и астрономия. [Электронный ресурс] - режим доступа: http://www.astrofiz.narod.ru/ (17.10.2016)

© Желудков А.В., Куров А.В. 2016

i Надоели баннеры? Вы всегда можете отключить рекламу.