Bonjour, je ne parviens pas à exporter en pdf mon sketch Processing (version 3.2.3) il est en P3D et il semble ne pas prendre en compte les lights() et le background.
J'ai essayé toutes les méthodes citées ici https://processing.org/reference/librar … index.html
mais rien à faire les ombres lights() n'apparaissent pas sur l'export.
Si quelqu'un a déjà rencontré ce genre de problème, merci d'avance pour votre aide
Je vous joins ci-dessous le code en question
import processing.pdf.*;
import controlP5.*;
ControlP5 cp5;
boolean record;
float angle;
float angleX;
float tailleBox;
float angleVitesse;
float tailleSpheres;
void setup() {
size(550, 800, P3D);
cp5 = new ControlP5(this);
cp5.addSlider("angle")
.setPosition(30, 20)
.setSize(150, 10)
.setRange(0, 360)
;
cp5.addSlider("angleX")
.setPosition(50, 780)
.setSize(150, 10)
.setRange(0, 360)
;
cp5.addSlider("angleVitesse")
.setPosition(30, 40)
.setSize(100, 10)
.setRange(0, 360)
;
cp5.addSlider("tailleBox")
.setPosition(330, 20)
.setSize(150, 10)
.setRange(10, 60)
;
cp5.addSlider("tailleSpheres")
.setPosition(330, 40)
.setSize(100, 10)
.setRange(-20, 50)
;
;
}
void draw() {
//if (record) {
// beginRaw(DXF, "output.dxf");
// }
if (record) {
beginRaw(PDF, "output.pdf");
}
noStroke();
//fill(255,0,0);
lights();
for ( int x = 90; x < width-25; x +=50) {
for ( int y = 90; y < height-20; y +=50) {
pushMatrix();
translate(x, y, 0);
rotateY(radians(angleVitesse));
sphere(tailleSpheres);
popMatrix();
}
}
for ( int x = 90; x < width-50; x +=80 ) {
for ( int y = 90; y < height-50; y +=80 ) {
pushMatrix();
translate(x, y, 0);
rotateY(radians(angle));
rotateX(radians(angleX));
lights();
sphere(tailleBox);
popMatrix();
}
}
if (record) {
endRaw();
record = false;
}
}
void keyPressed() {
if (key == 'r') {
record = true;
}
}
Hors ligne
Après un peu de recherche cela semble normal. L'enregistrement via beginRaw / endRaw ne prend en compte que les géométries "primitives" : lignes, triangles.. On conçoit que ça soit plus simple lors d'un export vers un format vectoriel.
Cependant est-ce qu'un export vectoriel t'es bien nécessaire ?
Si ce n'est qu'une question de qualité tu as moyen d'obtenir des images de très bonne facture sans. Par exemple en utilisant saveFrame() ou save() sur une fenêtre assez grande (au besoin, créer un PGraphics à la volée et de la taille souhaitée, en utilisant scale() pour mettre le contenu de draw à la bonne échelle le moment venu).
Et tu peux toujours enregistrer ces images dans un .pdf "après coup".
En revanche s'il te faut absolument du vectoriel, je n'ai pas d'idée de solution. Peut-être qu'un hack chelou donnerait des résultats, mais visiblement internet ne planche pas vraiment sur la question...
Dernière modification par Nnylf (2017-11-03 04:16:54)
Hors ligne
Merci beaucoup pour cette réponse.
Je pensais en effet à un export vectoriel pour une meilleur qualité mais je vais essayer tout de suite cette méthode.
merci !
Hors ligne
Pages: 1