2

我正在尝试使用 OPENGL 或 P3D 库通过 Processing.org 以 3D 显示 SVG 文件。此处记录的问题(以及其他地方:12不受欢迎的库 hack)是这些渲染器不支持复杂的形状(那些有孔或复杂中断的)。

是否有图形的 SVG 替代品,或者我可以使用的其他库?

以下是图像文件和代码示例。第一个图像使用默认渲染器:

使用默认渲染器

此图像使用 OPENGL 3D 库。你可以看到它很难重现 SVG 文件。

使用 OPENGL 3d 渲染器

我已经发布了这个草图的压缩包,下面有图片和代码。取消注释 OPENGL 行并注释默认行以查看问题。

import processing.opengl.*; 

float wh = 0;

void setup() {
  //size(600, 600, OPENGL); // use OPENGL
  size(600, 600); // use default library
  background(255);
  smooth();
}

void draw() {
  wh = random(40, 200);  
  PShape s;
  String file = "gear" + ceil(random(0, 12)) + ".svg";
  s = loadShape(file);
  shape(s, random(-20, width), random(-20, height), wh, wh);
}
4

2 回答 2

3

您可以使用与 OPENGL 渲染器配合良好的 Geomerative 库。你可以在那里找到它: http ://www.ricardmarxer.com/geomerative/

这是您提供的示例,适用于适用于 OPENGL 的 Geomerative:

import geomerative.*;
import processing.opengl.*; 

float wh = 0;

void setup() {
    size(600, 600, OPENGL);
    RG.init( this );

    background(255);
    smooth();
}

void draw() {
    wh = random(40, 200);  
    RShape s;
    String file = "gear" + ceil(random(0, 12)) + ".svg";
    s = RG.loadShape(file);

    pushMatrix();
    translate(random(-20, width), random(-20, height));
    s.draw();
    popMatrix();
}
于 2012-07-17T21:21:04.203 回答
0

http://www.hypeframework.org Hype 框架,skillshare.com 上有一些很酷的教程

于 2014-04-30T08:55:33.130 回答