我正尝试使用OPENGL或P3D库在Processing.org中显示3D的SVG文件。问题documented here(以及其他地方:1,2和an undesirable library hack)是这些渲染器不支持复杂形状(带有洞或复杂断点的形状) 。
对于图形或我可以使用的其他库,是否有SVG的替代方案?
以下是图像文件和代码示例。第一个图像使用默认渲染器:
此图像使用OPENGL 3D库。您可以看到它难以重现SVG文件。
I've posted a zip of this sketch with images以及下面的代码。取消注释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);
}
答案 0 :(得分:3)
您可以使用Geomerative库,它可以与OPENGL渲染器一起使用。 你可以在那里找到它: http://www.ricardmarxer.com/geomerative/
这是您提供的适用于Geomerative的示例,适用于OPENGL:
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();
}
答案 1 :(得分:0)
http://www.hypeframework.org Hype Framework,在skillshare.com上有一些很酷的教程