Render.ru
Поддержать

Создание грани

AllexScript

Пользователь сайта
Рейтинг
2
Вопрос такой: как можно например имея координаты шести вершин создать 6-и угольную плоскость т.е. грань. Как вообще можно создавать грани по вершинам (грань как реальную поверхность которая рендерится)?
Заранее благодарен…

Savin Denis

Модератор форума
Команда форума
Рейтинг
138
Для начала тебе понадобиться EditablePoly объект, так он поддерживает работу с много угольными полигонами и уже сам их разбивает на треугольники - Faces

Получить его можно преобразовав из пустой сетки:

ep = editable_mesh name:(uniquename "Nexagon") --create an empty EMesh
convertTo ep Editable_Poly --convert to Editable_Poly
Далее тебе нужно создать вершины.
Каждая вновь созданная вершина получает порядковый номер т.е. ее место в массиве - Индекс.
Запоминаем индексы вершин, они понадобятся нам для создания полигона.

p1 = [0, 0 , 0]
p2 = [ .5, sqrt(3.0)/2.0 , 0]
p3 = [ 1.5, sqrt(3.0)/2.0, 0]
p4 = [ 2, 0, 0]
p5 = [ 1.5, -sqrt(3.0)/2.0, 0]
p6 = [ .5, -sqrt(3.0)/2.0, 0]

v1 = ep.createVertex p1
v2 = ep.createVertex p2
v3 = ep.createVertex p3
v4 = ep.createVertex p4
v5 = ep.createVertex p5
v6 = ep.createVertex p6
Теперь просто создаем полигон по вершинам:

ep.createFace (#(v1,v2,v3,v4,v5,v6))
Вот и все.

PS
Гранью(Edge) в CG называется ребро соединяющее две точки полигона или Face.
Боле подробно по командам читай хелп Editable_Poly: GeometryClass