所以我有一些路径生成器现在像这样工作

http://www.openprocessing.org/visuals/?visualID=2615 (有来源;WQRNING - JAVA 小程序)

我想使用我生成的路径创建一些 3D 对象,因此它锁定在类似于我现在在 2D 中获得的视角之一。

那么如何通过添加路径来动态构造 3D 对象呢?

顺便提一句:实际上我是这样的算法 http://www.derschmale.com/2009/07/20/slice-based-volume-rendering-using-pixel-bender/

所以我想从这样的路径创建(我不想使用图像,我不想使用flash,我想使用Java + OpenGL)

alt text

这样的 3D 图像(但请注意我想要 openGL Java 和 Path 的))

alt text

有帮助吗?

解决方案

我不确定我明白你在追求什么。

您提供的示例绘制了 2d 路径,但仅使用 z。缩放本来也会以类似的方式工作。

那么如何通过添加路径来构建dinamic构建3D对象呢?

您的意思是挤压/车削一个物体,还是复制挤压草图?

绘制路径很容易处理,您只需放置 顶点 物体,在一个 for循环 之间 开始形状()结束形状() 来电。

以下是您发送的示例中执行此操作的代码:

 beginShape(); 
  for (int p=0; p<pcount; p++){ 
    vertex(Ring[p].position().x(),Ring[p].position().y()); 
  } 
  endShape(CLOSE);

您还可以调用 vertex(x,y,z)

不久前我想挤出一条路,这是我的 问题 如果有帮助的话。

基本草图已上传 这里.

编辑:如果您有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();
}

这个想法是循环遍历每个切片,并为每个切片循环遍历其所有点。显然,切片和每个切片内的 3d 向量数量取决于您的数据。说到这里,你的数据从哪里来?

如果切片不是你想要的 沃特龙 可以派上用场:volTron http://dm.ncl.ac.uk/joescully/voltronlib/images/s2.jpg

Hth,乔治

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top