Bonjour,
je commençais a regarder comment fonctionnais les arc(); (en vue de dataviz) quand est venue un petit problème.
je n'arrive pas a avoir des extrémités qui se joignent parfaitement même en utilisant les variables PI, HALF_PI etc...
voila le code
import processing.pdf.*;
//
float p = 250; //centre des arc
float f = 240; // variante pour couleur du stroke
void setup() {
size(500, 500);
beginRecord(PDF, "line.pdf");
background(255, 255);
noFill();
smooth();
strokeCap(SQUARE);
strokeWeight(50);
for ( float av = 0; av< TWO_PI; av+=QUARTER_PI) {
stroke(f, 10, 10);
f-=20;
arc(p, p, 350, 350, 0+av, QUARTER_PI+av);
}
endRecord();
}L'idée étant d'arriver a des choses comme ceci,
Aussi il y a peut être une méthode plus simple ou autre(dessiner la forme et pas utiliser Stroke?)?
C'est surment trés simple mais je ne trouve pas.
Merci d'avance
++
Dernière modification par Vainzou (2013-05-06 12:02:49)
Hors ligne
Bonjour,
Dans l'algorithme de calcul des arcs, il doit y avoir une approximation. Tu peux "tricher" :
// import processing.pdf.*;
float p = 250; //centre des arc
int f = 240; // variante pour couleur du stroke
void setup() {
size(500, 500);
smooth();
noLoop();
}
void draw() {
// beginRecord(PDF, "line.pdf");
background(255, 255);
noFill();
smooth();
strokeCap(SQUARE);
strokeWeight(50);
for ( int i = 0; i< 8; i++) {
stroke(f, 10, 10);
f -= 20;
arc(p, p, 350, 350, i * QUARTER_PI - 0.003, QUARTER_PI + i * QUARTER_PI+ 0.003);
}
// endRecord();
}Hors ligne
Oui c'est une solution.![]()
sachant que plus le diamètre est grand plus la valeur d'ajustement sera grande :s
(le rendue png est différent du rendue pdf/vectorie d'ailleurs)
je vais me débrouiller avec ça en attendant une correction/meilleur solution.
Hors ligne
Pages: 1