Annonce

>>> Bienvenue sur codelab! >>> Première visite ? >>> quelques mots sur codelab //// une carte des membres//// (apéros) codelab


#1 2018-01-09 00:11:19 appeler une liste des lignes aléatoirement

grsblfx
nouveau membre
Date d'inscription: 2014-12-10
Messages: 7

appeler une liste des lignes aléatoirement



Bonsoir !

Je viens ici car je n'ai pas trouvé de réponse à mon problème en fouillant sur le net, pourtant je suis sûr qu'il existe une solution simple ! je tiens à préciser que mes compétences en processing sont très limitées.

Mon problème est le suivant :

j'ai une liste de lignes prédéfinies, et j'aimerais que lors de l'exécution, chaque ligne ait une chance sur deux d'apparaître, donc théoriquement on devrait obtenir une figure aléatoire.

Voilà mon code :

void setup() {
fullScreen();
background(255);
strokeWeight(10); }

void draw () {
// x
//gauche

line(450, 200, 550, 300);
line(550, 300, 650, 400);
line(650, 400, 750, 500);
line(750, 500, 850, 600);
//droite
line(850, 200, 750, 300);
line(750, 300, 650, 400);
line(650, 400, 550, 500);
line(550, 500, 450, 600);
//contour
line(450, 200, 650, 200);
line(650, 200, 850, 200);
line(850, 200, 850, 400);
line(850, 400, 850, 600);
line(850, 600, 650, 600);
line(650, 600, 450, 600);
line(450, 600, 450, 400);
line(450, 400, 450, 200);
// +
line(650, 200, 650, 400);
line(650, 400, 650, 600);
line(450, 400, 650, 400);
line(650, 400, 850, 400);
// petits x
line(650, 200, 550, 300);
line(550, 300, 450, 400);
line(450, 400, 550, 500);
line(550, 500, 650, 600);
line(650, 600, 750, 500);
line(750, 500, 850, 400);
line(850, 400, 750, 300);
line(750, 300, 650, 200);
}


Merci d'avance pour votre aide !

Hors ligne

 

#2 2018-01-09 08:28:25 Re : appeler une liste des lignes aléatoirement

Mushussu
membre
Lieu: Orléans
Date d'inscription: 2012-05-24
Messages: 802

Re: appeler une liste des lignes aléatoirement



Bonjour,

Pour réaliser ce que tu souhaites, il faut pour chaque ligne faire un tirage aléatoire et mettre une condition.
Afin de simplifier la procédure, j'ai stocker toutes les valeurs des lignes dans un tableau.
L'affichage et la condition sont ainsi très simple réaliser.
Je me suis permis aussi de modifier les coordonnées des lignes pour que le motif soit centré quelque soit l'écran utilisé. en gros j'ai centré le motif sur le point (0, 0) et ensuite j'effectue une translation en fonction de l'écran.

int[][] tableau = {
  //gauche
  {-200, -200, -100, -100}, 
  {-100, -100, 0, 00}, 
  {0, 0, 100, 100}, 
  {100, 100, 200, 200}, 
  //droite
  {200, -200, 100, -100}, 
  {100, -100, 0, 0}, 
  {0, 0, -100, 100}, 
  {-100, 100, -200, 200}, 
  //contour
  {-200, -200, 0, -200}, 
  {0, -200, 200, -200}, 
  {200, -200, 200, 0}, 
  {200, 0, 200, 200}, 

  {200, 200, 0, 200}, 
  {0, 200, -200, 200}, 
  {-200, 200, -200, 0}, 
  {-200, 0, -200, -200}, 
  // +
  {0, -200, 0, 0}, 
  {0, 0, 0, 200}, 
  {-200, 0, 0, 0}, 
  {0, 0, 200, 0}, 
  // petits x
  {0, -200, -100, -100}, 
  {-100, -100, -200, 0}, 
  {-200, 0, -100, 100}, 
  {-100, 100, 0, 200}, 

  {0, 200, 100, 100}, 
  {100, 100, 200, 0}, 
  {200, 0, 100, -100}, 
  {100, -100, 0, -200}
};

void setup() {
  fullScreen();
  strokeWeight(10);
  noLoop();
}

void draw () {
  background(255);
  translate(width / 2, height / 2);
  for (int i = 0; i < tableau.length; i++) {
    if (random(0, 2) > 1) {
      line(tableau[i][0], tableau[i][1], tableau[i][2], tableau[i][3]);
    }
  }
}

Hors ligne

 

#3 2018-01-09 12:55:55 Re : appeler une liste des lignes aléatoirement

grsblfx
nouveau membre
Date d'inscription: 2014-12-10
Messages: 7

Re: appeler une liste des lignes aléatoirement



Merci de ta réponse Mushussu c'est exactement ça que je voulais c'est trop bien ! J'ai mis du temps à saisir l'histoire du tableau et des variables mais là je crois comprendre un peu mieux, et en plus je vais pouvoir me resservir de la fonction translate sur mes autres projets, plutôt que de m'arracher les cheveux à chaque fois que je change d'écran !

Encore merci et bonne journée !

Hors ligne

 

fil rss de cette discussion : rss

Pied de page des forums

Powered by FluxBB

codelab, graphisme & code : emoc / 2008-2024