Я не уверен, что понимаю, что тебе нужно.
Пример, который вы предоставили, рисует 2d пути, но просто использует z. масштабирование работало бы аналогичным образом.
So Как динамически построить 3d объект, добавив путь?
Вы имеете в виду выдавливание/обвязывание объекта или репликацию эскиза скрина?
Рисование путь легок в обработке, вы просто поместите Vertex объектов, в виде для контура между beginShape() и endShape() вызовов.
Вот фрагмент кода, который делает это в примере, вы послали:
beginShape();
for (int p=0; p<pcount; p++){
vertex(Ring[p].position().x(),Ring[p].position().y());
}
endShape(CLOSE);
вы также можете вызвать вершину (х, у, г)
Я хотел выдавить путь некоторое время назад, вот мой question в случае, если это поможет.
Загружен основной эскиз here.
EDIT: Если у вас есть массив из 2-х полигонов, вы можете просто цикл через них, и сделать используя что-то похожее на beginShape() и endShape(), GL_POLYGON может быть удобно.
например.
import processing.opengl.*;
import javax.media.opengl.*;
int zSpacing = 10;
PVector[][] slices;
void setup() {
size(600, 500, OPENGL);
slices = new PVector[3][3];
//dummy slice 1
slices[0][0] = new PVector(400, 200,-200);
slices[0][1] = new PVector(300, 400,-200);
slices[0][2] = new PVector(500, 400,-200);
//dummy slice 2
slices[1][0] = new PVector(410, 210,-200);
slices[1][1] = new PVector(310, 410,-200);
slices[1][2] = new PVector(510, 410,-200);
//dummy slice 3
slices[2][0] = new PVector(420, 220,-200);
slices[2][1] = new PVector(320, 420,-200);
slices[2][2] = new PVector(520, 420,-200);
}
void draw() {
background(255);
PGraphicsOpenGL pgl = (PGraphicsOpenGL) g; // g may change
GL gl = pgl.beginGL(); // always use the GL object returned by beginGL
for(int i = 0 ; i < slices.length; i ++){
gl.glColor3f(0, .15 * i, 0);
gl.glBegin(GL.GL_POLYGON);
for(int j = 0; j < slices[i].length; j++){
gl.glVertex3f(slices[i][j].x, slices[i][j].y,slices[i][j].z + (zSpacing * i));
}
gl.glEnd();
}
pgl.endGL();
}
Идея заключается в том, чтобы вы проходили через каждый срез, и для каждого среза ваша петля через все ее точки. Очевидно, что срезы и число трехмерных векторов внутри каждого среза соответствуют вашим данным. Кстати, откуда взялись ваши данные?
Если ломтики не то, что ваш после volTron могут пригодиться: volTron http://dm.ncl.ac.uk/joescully/voltronlib/images/s2.jpg
HTH, Джорджа
на самом деле я Мент алгоритм, как это http://www.derschmale.com/2009/07/ 20/срез на основе объем-рендеринг-использование пикселов гибочные / – Rella