2012-06-18 2 views
1

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

то, что я думаю, что нужно сделать:

1) получить размеры объема

2) начать рисовать линии, например, из [0,0,0] до [0,1,0] от [0,1,0] до [1,1,0] и от [1,1,0] до [1,0,0] и обратно снова до [0,0,0] и т. д.

Есть ли простой способ нарисовать линию в xtk? например, используя что-то похожее, как сфера-конструктор here?

пример (черные контуры):

cube

заранее спасибо

ответ

1

В X.slice, мы создаем границы текущего среза, как это.

var borders = new X.object(); 
borders._points.add(point0.x, point0.y, point0.z); // 0 
borders._points.add(point1.x, point1.y, point1.z); // 1 
borders._points.add(point1.x, point1.y, point1.z); // 1 
borders._points.add(point4.x, point4.y, point4.z); // 4 
borders._points.add(point4.x, point4.y, point4.z); // 4 
borders._points.add(point2.x, point2.y, point2.z); // 2 
borders._points.add(point2.x, point2.y, point2.z); // 2 
borders._points.add(point0.x, point0.y, point0.z); // 0 
borders._normals.add(0, 0, 0); 
borders._normals.add(0, 0, 0); 
borders._normals.add(0, 0, 0); 
borders._normals.add(0, 0, 0); 
borders._normals.add(0, 0, 0); 
borders._normals.add(0, 0, 0); 
borders._normals.add(0, 0, 0); 
borders._normals.add(0, 0, 0); 
borders._color = [1, 0, 0]; 

# set the drawing type to lines 
borders._type = X.displayable.types.LINES; 

borders._linewidth = 2; 

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

А я просто вижу, что type геттер/сеттер еще не существует. Мы должны создать его, чтобы разрешить установку типа извне. Так что я только что создал Issue для этого https://github.com/xtk/X/issues/62

Не стесняйтесь вносить его :) Должно быть легко :)

+0

очень хороший подход. – p0rter