2012-06-11 1 views
2

OpenGL 또는 P3D 라이브러리를 사용하여 Processing.org로 SVG 파일을 3D로 표시하려고합니다. documented here (및 기타 장소 : 1, 2an undesirable library hack) 문제는 이러한 렌더러가 복잡한 모양 (구멍이 있거나 복잡한 나누기가있는 모양)을 지원하지 않는다는 것입니다.OPENGL 또는 P3D 라이브러리가있는 Processing.org에서 SVG 파일을 표시하는 SVG 대체

그래픽 또는 다른 라이브러리에서 SVG 대신 사용할 수있는 옵션이 있습니까?

아래는 이미지 파일과 코드 샘플입니다.

with default renderer

이 이미지는 OpenGL을 3D 라이브러리를 사용하여 첫 번째 이미지는 디폴트의 렌더링을 사용합니다. SVG 파일을 재생산하는 것이 어렵다는 것을 알 수 있습니다.

아래

with OPENGL 3d renderer

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); 
} 

답변

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(); 
} 
+0

이 답변에 적합합니다. 환상적인 도서관. – jedierikb

+0

처리 3에서도이 문제가 해결 된 것으로 나타났습니다. – ow3n