Bonjour,
Je débute sous Processing
J'ai une figure SVG que j'arrive à remplir avec des ellipses distantes ordonnées selon une grille régulière.
J'aimerais faire en sorte que seules les ellipses contenues dans la figure SVG (PShape) soient affichées et non celles qui dépassent.
Cela me permettra d'afficher des trames particulières composées d'objets entiers sur une série d'éléments SVG contigus.
Voici un échantillon de code, pour exemple:
PShape star; void setup() { size(500, 500); star = loadShape("shape.svg"); smooth(); shape(star, width/2, height/2, 300, 300); for (int j = 0; j < height; j+=20) { for (int i = 0; i < width; i+=20) { if (hex(get(i, j)).equals("FFFFFF00")) { ellipse(i, j, 20, 20); } } } }
Quelqu'un peut-il me dire comment procéder?
Dernière modification par mathieu_r (2012-03-23 15:59:32)
Hors ligne
Salut,
Ton algo teste si le centre de l'ellipse est dans la forme selon la couleur du pixel, si j'ai bien compris. Tu pourrais commencer par ce test puis tester x points autour de ce centre avec le rayon de ton cercle pour voir si tous les points du bord du cercle sont dans la zone de couleur.
Quelque chose comme ça :
Je n'ai pas testé mais sur le principe ça devrait marcher avec des cercles, il faudrait l'adapter pour les autres ellipses.
Hors ligne
Super!
En effet, c'est une super solution que j'ai pu tester avec succès.
Pour info, j'ai également posté sur le forum officiel où la réponse suivante m'a été donnée, utilisant un buffer PGraphics et le test de pixels situés dans la boîte englobant le cercle (ta solution est meilleure sur le principe, je trouve)
http://forum.processing.org/topic/filli … 0001470071
Hors ligne