所以我有一些路径生成器现在可以像这样工作
http://www.openprocessing.org/visuals/?visualID=2615(有来源; WQRNING - JAVA APPLET)
我想使用我生成的路径创建一些3D对象,因此它锁定在一个类似于我现在在2D中获得的透视图中。
那么如何通过添加路径动态构建3D对象?
顺便说一句:实际上我是这样的算法http://www.derschmale.com/2009/07/20/slice-based-volume-rendering-using-pixel-bender/
所以我想从这样的PATH创建(我不想使用图像,我不想使用flash我想使用Java + OpenGl)
alt text http://www.derschmale.com/blog/wp-content/cross-section.jpg
这样的3D图像(但请注意我想要openGL Java和Path))
alt text http://www.derschmale.com/blog/wp-content/volumerendering.jpg
答案 0 :(得分:1)
我不确定我明白你在追求什么。
您提供的示例绘制了2d路径,但仅使用z。缩放会起作用 以类似的方式。
那么如何动态构建3d 通过添加路径来对象?
您的意思是挤压/车削物体,还是复制碾碎的草图?
在处理过程中轻松绘制路径,只需将顶点对象放在 for循环中 在 beginShape()和 endShape()之间进行调用。
以下是您发送的示例中的一些代码:
beginShape();
for (int p=0; p<pcount; p++){
vertex(Ring[p].position().x(),Ring[p].position().y());
}
endShape(CLOSE);
你也可以调用顶点(x,y,z)
我想暂时挤出一个路径,这是我的question以防万一。
上传基本草图here。
编辑: 如果你有一个包含2个多边形的数组,你可以循环遍历它们并绘制 使用类似于beginShape()和endShape()的东西,GL_POLYGON可能很方便。
e.g。
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();
}
这个想法是你循环遍历每个切片,并为每个切片循环遍历所有点。显然,切片和每个切片内的3d矢量数量取决于您的数据。说到哪,你的数据来自哪里?
如果切片不是您的volTron可以派上用场的话: volTron http://dm.ncl.ac.uk/joescully/voltronlib/images/s2.jpg
HTH, 乔治