Построение графических примитивов.
Математические модели поверхностей и объектов
Тела Платона — это выпуклые многогранники, все грани которых правильные многоугольники. Все многогранные углы правильного многогранника конгруэнтны. Как это следует уже из подсчета суммы плоских углов при вершине, выпуклых правильных многогранников не больше пяти. Указанным ниже путем можно доказать, что существует именно пять правильных многогранников (это доказал Евклид). Они — правильный… Читать ещё >
Построение графических примитивов. Математические модели поверхностей и объектов (реферат, курсовая, диплом, контрольная)
- Введение
- Тела Платона
- Построение треугольника
- Построение додекаэдра
- Заключение
Данная курсовая работа предназначена для того чтобы:
1) закрепить, углубить и расширить теоретические знания в области методов моделирования поверхностей и объектов, практические умения и навыки программной реализации методов;
2) усовершенствовать навыки самостоятельной работы;
3) выработать умения формулировать суждения и выводы, логически последовательно и доказательно их излагать.
Тела Платона
Тела Платона — это выпуклые многогранники, все грани которых правильные многоугольники. Все многогранные углы правильного многогранника конгруэнтны. Как это следует уже из подсчета суммы плоских углов при вершине, выпуклых правильных многогранников не больше пяти. Указанным ниже путем можно доказать, что существует именно пять правильных многогранников (это доказал Евклид). Они — правильный тетраэдр, гексаэдр (куб), октаэдр, додекаэдр и икосаэдр. Названия этих правильных многогранников пришли из Греции. В дословном переводе с греческого «тетраэдр», «октаэдр», «гексаэдр», «додекаэдр», «икосаэдр» означают: «четырехгранник», «восьмигранник», «шестигранник». «двенадцатигранник», «двадцатигранник» .
Таблица№ 1
Название: | Число ребер при вершине | Число сторон грани | Число граней | Число ребер | Число вершин | |
Тетраэдр | ||||||
Гексаэдр | ||||||
Октаэдр | ||||||
Додекаэдр | ||||||
Икосаэдр | ||||||
Таблица№ 2
Название: | Радиус описанной сферы | Радиус вписанной сферы | Объем | |
Тетраэдр | ||||
Гексаэдр | ||||
Октаэдр | ||||
Додекаэдр | ||||
Икосаэдр | ||||
Тетраэдр — четырехгранник, все грани которого треугольники, т. е. треугольная пирамида; правильный тетраэдр ограничен четырьмя равносторонними треугольниками. (рис.1).
Куб или правильный гексаэдр — правильная четырехугольная призма с равными ребрами, ограниченная шестью квадратами. (рис.1).
Октаэдр — восьмигранник; тело, ограниченное восемью треугольниками; правильный октаэдр ограничен восемью равносторонними треугольниками; один из пяти правильных многогранников. (рис.1).
Додекаэдр — двенадцатигранник, тело, ограниченное двенадцатью многоугольниками; правильный пятиугольник. (рис.1).
Икосаэдр — двадцатигранник, тело, ограниченное двадцатью многоугольниками; правильный икосаэдр ограничен двадцатью равносторонними треугольниками. (рис.1).
(рис. 1)
Куб и октаэдр дуальны, т. е. получаются друг из друга, если центры тяжести граней одного принять за вершины другого и обратно. Аналогично дуальны додекаэдр и икосаэдр. Тетраэдр дуален сам себе. Правильный додекаэдр получается из куба построением «крыш» на его гранях (способ Евклида), вершинами тетраэдра являются любые четыре вершины куба, попарно не смежные по ребру. Так получаются из куба все остальные правильные многогранники. Сам факт существования всего пяти действительно правильных многогранников удивителен — ведь правильных многоугольников на плоскости бесконечно много!
Все правильные многогранники были известны еще в Древней Греции, и им посвящена 13-я книга «Начал» Евклида. Их еще называют телами Платона, т.к. они занимали важное место в философской концепции Платона об устройстве мироздания. Четыре многогранника олицетворяли в ней четыре сущности или «стихии». Тетраэдр символизировал огонь, т.к. его вершина устремлена вверх; икосаэдр? воду, т.к. он самый «обтекаемый»; куб — землю, как самый «устойчивый»; октаэдр? воздух, как самый «воздушный». Пятый многогранник, додекаэдр, воплощал в себе «все сущее», символизировал все мироздание, считался главным.
Гармоничные отношения древние греки считали основой мироздания, поэтому четыре стихии у них были связаны такой пропорцией: земля/вода = воздух/огонь.
В связи с этими телами уместно будет сказать, что первая система элементов, включавшая четыре элемента? землю, воду, воздух и огонь, — была канонизирована Аристотелем. Эти элементы оставались четырьмя краеугольными камнями мироздания в течение многих веков. Вполне возможно отождествить их с известными нам четырьмя состояниями вещества — твердым, жидким, газообразным и плазменным.
Важное место занимали правильные многогранники в системе гармоничного устройства мира И. Кеплера. Все та же вера в гармонию, красоту и математически закономерное устройство мироздания привела И. Кеплера к мысли о том, что поскольку существует пять правильных многогранников, то им соответствуют только шесть планет. По его мнению, сферы планет связаны между собой вписанными в них платоновыми телами. Поскольку для каждого правильного многогранника центры вписанной и описанной сфер совпадают, то вся модель будет иметь единый центр, в котором будет находиться Солнце.
Проделав огромную вычислительную работу, в 1596 г. И. Кеплер в книге «Тайна мироздания» опубликовал результаты своего открытия. В сферу орбиты Сатурна он вписывает куб, в куб? сферу Юпитера, в сферу Юпитера — тетраэдр, и так далее последовательно вписываются друг в друга сфера Марса? додекаэдр, сфера Земли? икосаэдр, сфера Венеры? октаэдр, сфера Меркурия. Тайна мироздания кажется открытой.
Сегодня можно с уверенностью сказать, что расстояния между планетами не связаны ни с какими многогранниками. Впрочем, возможно, что без «Тайны мироздания», «Гармонии мира» И. Кеплера, правильных многогранников не было бы трех знаменитых законов И. Кеплера, которые играют важную роль в описании движения планет.
Где еще можно увидеть эти удивительные тела? В книге немецкого биолога начала прошлого века Э. Геккеля «Красота форм в природе» можно прочитать такие строки: «Природа вскармливает на своем лоне неисчерпаемое количество удивительных созданий, которые по красоте и разнообразию далеко превосходят все созданные искусством человека формы». Создания природы, приведенные в этой книге, красивы и симметричны. Это неотделимое свойство природной гармонии. Но здесь видно и одноклеточные организмы? феодарии, форма которых точно передает икосаэдр. Чем же вызвана такая природная геометризация? Может быть, тем, что из всех многогранников с таким же количеством граней именно икосаэдр имеет наибольший объем и наименьшую площадь поверхности. Это геометрическое свойство помогает морскому микроорганизму преодолевать давление водной толщи.
Интересно и то, что именно икосаэдр оказался в центре внимания биологов в их спорах относительно формы вирусов. Вирус не может быть совершенно круглым, как считалось ранее. Чтобы установить его форму, брали различные многогранники, направляли на них свет под теми же углами, что и поток атомов на вирус. Оказалось, что только один многогранник дает точно такую же тень? икосаэдр. Его геометрические свойства, о которых говорилось выше, позволяют экономить генетическую информацию. Правильные многогранники? самые выгодные фигуры. И природа этим широко пользуется. Кристаллы некоторых знакомых нам веществ имеют форму правильных многогранников. Так, куб передает форму кристаллов поваренной соли NaCl, монокристалл алюминиево-калиевых квасцов (KAlSO4)2 12Н2О имеет форму октаэдра, кристалл сернистого колчедана FeS имеет форму додекаэдра, сурьмянистый сернокислый натрий — тетраэдра, бор — икосаэдра. Правильные многогранники определяют форму кристаллических решеток некоторых химических веществ.
Итак, правильные многогранники открыли нам попытки ученых приблизиться к тайне мировой гармонии и показали неотразимую привлекательность и красоту этих геометрических фигур.
Построение треугольника
Алгоритм Брезенхема построения растрового образа отрезка был изначально разработан для графопостроителей, но он полностью подходит и для растровых дисплеев. В процессе работы в зависимости от углового коэффициента отрезка изменяется на единицу либо x, либо y, а изменение другой координаты (на ноль или на единицу) зависит от расстояния между действительным положением точки и ближайшей точкой растра, называемое ошибкой. Алгоритм построен так, что анализируется лишь знак этого смещения. На рис. 2 это иллюстрируется для отрезка в первом октанте, то есть для отрезка с угловым коэффициентом, лежащим в диапазоне от нуля до единицы. Из рисунка можно заметить, что если угловой коэффициент отрезка из точки (0, 0) больше чем ½, то его пересечение с прямой x = 1 будет расположено ближе к прямой y = 1, чем к прямой y = 0. Следовательно, точка растра (1, 1) лучше аппроксимирует ход отрезка, чем точка (1, 0). Если угловой коэффициент меньше ½, то верно обратное. Для углового коэффициента, равного ½, нет какого-либо предпочтительного выбора. В данном случае алгоритм выбирает точку (1, 1).
(рис. 2)
Не все отрезки проходят через точки растра. Подобная ситуация иллюстрируется на рис. 3, где отрезок с тангенсом угла наклона 3/8 сначала проходит через точку растра (0, 0) и последовательно пересекает три пикселя. Также иллюстрируется вычисление ошибки при представлении отрезка дискретными пикселями. Так как желательно проверять только знак ошибки, то она первоначально устанавливается равной -½. Таким образом, если угловой коэффициент отрезка больше или равен ½, то величина ошибки в следующей точке растра с координатами (1, 0) может быть вычислена как
e = e + m,
где m — угловой коэффициент. В нашем случае при начальном значении ошибки -½ e = -½ + 3/8 = -1/8.
(рис. 3)
Так как e отрицательно, отрезок пройдет ниже середины пикселя. Следовательно, пиксель на том же самом горизонтальном уровне лучше аппроксимирует положение отрезка, поэтому у не увеличивается. Аналогично вычисляем ошибку e = -1/8 + 3/8 = ¼ в следующей точке растра (2, 0). Теперь e положительно, а значит, отрезок пройдет выше средней точки. Растровый элемент (2, 1) со следующей по величине координатой y лучше аппроксимирует положение отрезка. Следовательно, y увеличивается на единицу. Прежде чем рассматривать следующий пиксель, необходимо откорректировать ошибку вычитанием из нее единицы. Имеем e = ¼ — 1 = -¾.
Заметим, что пересечение вертикальной прямой x = 2 с заданным отрезком лежит на ¼ ниже прямой y = 1. Если же перенести отрезок ½ вниз, мы получим как раз величину -¾. Продолжение вычислений для следующего пикселя дает e = -¾ + 3/8 = -3/8.
Так как e отрицательно, то y не увеличивается. Из всего сказанного следует, что ошибка — это интервал, отсекаемый по оси y рассматриваемым отрезком в каждом растровом элементе (относительно -½).
В общем случае чтобы обрабатывать отрезки во всех октантах. Необходимо учитывать в алгоритме номер квадранта, в котором лежит отрезок и его угловой коэффициент. Когда абсолютная величина углового коэффициента больше 1, y постоянно изменяется на единицу, а критерий ошибки Брезенхема используется для принятия решения об изменении величины x. Выбор постоянно изменяющейся (на +1 или -1) координаты зависит от квадранта.
(рис. 4)
ФункцияSign возвращает -1, 0, 1 для отрицательного, нулевого и положительного аргумента соответственно, предназначена для того чтобы учитывать номер квадранта.
Функция Line аппроксимирует отрезок с начальными координатами X1, Y1 и конечными координатами X2, Y2 по общему алгоритму Брезенхема.
Функция Triang объединяет три матрицы с координатами точек каждой стороны треугольника.
Далее выводим средствами Mathcad результат работы функции Triang для заданных координат вершин треугольника:
Построение додекаэдра
Додекаэдр — наиболее сложное платоново тело. Оптимальный метод его построения заключается в предварительном создании икосаэдра и соединении центров его смежных граней ребрами.
Икосаэдр конструируется по следующему алгоритму.
(рис. 5)
В окружностях сечений цилиндра единичного радиуса строятся правильные пятиугольники 1−3-5−7-9−1 и 2−4-6−8-10−2 с координатами вершин xi=cos (36°i), zi=sin (36°i), yi=(-1)i+1h при i=1.10.
Соединяя вершины 1−2-3−4-5−6-7−8-9−10−1, получим десять средних треугольных граней икосаэдра с длиной горизонтальных ребер
Так как у нас нет смещения по х и по у то и, а поэтому получим
Из условия получения равносторонних треугольников. Найдем высоту h, для этого распишем длину ребер d через координаты 1 и 10 вершины.
Так как-то получим
Вычислим радиус описанной сферы
(рис. 6)
Функция K формирует матрицу координат вершин икосаэдра.
Q — матрица координат вершин икосаэдра.
G — матрица номеров вершин образующих одну грань икосаэдра.
Функция VV формирует матрицу координат вершин додекаэдра. Для этого из матрицы Q берем координатные столбцы вершин, образующих одну грань, усредняем их и получаем соответствующий координатный столбец матрицы Q12.
Q12- матрица координат вершин додекаэдра.
В матрицы G12 задаем обход додекаэдра (рис. 7) для прорисовки.
(рис. 7)
Результатом работы функции V (Q, G) является блочная матрица, элементы которой содержат соответственно только координаты X, Y и Z начальных и конечных вершин всех ребер, входящих в матрицу G12.
Далее средствами Mathcad по результатам работы функции V (Q12,G12) строим график поверхности додекаэдра:
Заключение
В данной курсовой работе я разработал и реализовал с помощью процедур и функций встроенного языка системы MathCAD программу на основе алгоритма Брезенхема, обеспечивающую генерацию стандартных графических примитивов в соответствии с вариантом задания, а именно генерацию треугольника. Также я разработал алгоритм построения модели додекаэдра. Успешно построил его по разработанному алгоритму с использованием системы программирования MathCAD. Тем самым закрепил, углубил и расширил теоретические знания в области методов моделирования объектов, укрепил свои практические умения и навыки программной реализации методов.