Многогранники



вновь мне пришлось вернуться к старому забытом проекту



Мне понадобились данные для изображения трехмерных фигур.Как и с чего начать? Начать лучше с теории:
Многогранник описывается трехмерными координатами X,Y,Z или вершинами. Линия, соединяющая вершины, называется ребром, совокупность ребер — гранью.


На рисунке вершины помечены буквами A,B,C,D,E,F,
ABC, DEF, ABED, BCFE, ACFD – грани;
AB, BC, AC, DE, EF, DF, AD, BE, CF – рёбра

Знакомство с фигурами началось с прочтения книги «Компьютерная графика: динамика, реалистические изображения», изд. «Диалог-МИФИ».
В части II, глава «Платоновы тела» описывается способ задания координат. Начнем с простого:

Куб

Координаты можно описать легко:

-1,-1,-1;;1
-1,-1,1;;2
-1,1,-1;;3
-1,1,1;;4
1,-1,-1;;5
1,-1,1;;6
1,1,-1;;7
1,1,1;;8


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

А грани будут описаны так:

(0,3,1,2, 0,5,4,1, 0,6,2,4, 6,3,2,7, 3,5,1,7, 4,7,6,5);

Цифры — это порядковые номера вершин, перечислены они так, чтобы отсекать невидимые грани.

Тетраэдр
Вычисление координат осуществляется проще: у противоположных граней куба проводятся скрещивающиеся диагонали:


Октаэдр
Эта фигура вписывается в куб:


Кроме упомянутых фигур стоило упомянуть еще одну:


Узнаете? да-да-да, «Кориолис». С ним описание выглядит посложнее, я нашел модель на сайте


C0 = 0.7071067811865475244008443621048 = sqrt(2) / 2

V0  = ( C0, 0.0,  C0)
V1  = ( C0, 0.0, -C0)
V2  = (-C0, 0.0,  C0)
V3  = (-C0, 0.0, -C0)
V4  = ( C0,  C0, 0.0)
V5  = ( C0, -C0, 0.0)
V6  = (-C0,  C0, 0.0)
V7  = (-C0, -C0, 0.0)
V8  = (0.0,  C0,  C0)
V9  = (0.0,  C0, -C0)
V10 = (0.0, -C0,  C0)
V11 = (0.0, -C0, -C0)

Faces:
{  0,  5,  1,  4 }
{  0,  8,  2, 10 }
{  7,  2,  6,  3 }
{  7, 11,  5, 10 }
{  9,  1, 11,  3 }
{  9,  6,  8,  4 }
{  0,  4,  8 }
{  1,  5, 11 }
{  2,  7, 10 }
{  3,  6,  9 }
{  4,  1,  9 }
{  5,  0, 10 }
{  6,  2,  8 }
{  7,  3, 11 }


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

2 комментария

avatar
Чётко! Спасибо за исходники на PureBasic!
avatar
все равно в них говнокод. Все изменится.
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.