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