Render.ru

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

AllexScript

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

Savin Denis

Модератор форума
Команда форума
Рейтинг
138
#2
Для начала тебе понадобиться 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
 
Сверху