Bonjour,
Étudiant en 5éme année en école d'Art à Marseille, je m’intéresse à processing et au codage par moment et chavirement.
J'ai quelques bases assez encrassées, trop malheureusement pour me lancer dans un projet qui m'intéresse actuellement.
Je m’intéresse aux différentes façon d'occuper un espace et notamment à l'accrochage d'oeuvre d'art. Je voudrais essayer d'y appliquer des logiques de répartition dans l'espace purement numérique.
J'aimerais arriver à créer un espace 3D dans lequel des cubes trouveraient leurs places définit par la fonction random()
En me replongeant dans processing j'ai réussi à placer un rectangle au hasard sur un espace plat en donnant comme coordonnée X et Y la fonction random()
Mes problème sont donc:
-La création d'un espace 3D sous processing
-La création de cubes
J'aimerais également savoir si il est possible d'avoir de la documentation sur les différentes fonction random() et sur leur façon de créer du hasard (je n'ai rien trouvé sur internet mais je pense que c'est faute d'avoir les bons mots-clées).
Ainsi qu'avoir vos avis et références par rapport à ce projet, j'imagine que je ne suis pas le premier à penser à ça.
Merci j'espère ne pas avoir était trop maladroit dans mes questions.
Hors ligne
Bonsoir,
En cette journée festive, voici de quoi débuter :
void setup() { size(800, 600, P3D); noLoop(); } void draw() { for (int i = 0; i < 10; i++) { pushMatrix(); translate(random(100, 400), random(100, 400), random(100, 400)); rotateY(random(0, PI)); noFill(); box(40, 20, 50); popMatrix(); } }
Sinon, pour gérer le hasard :
https://fr.wikipedia.org/wiki/Bruit_de_Perlin
https://processing.org/reference/noise_.html
Sinon, la méthode random() retourne une valeur aléatoire dans un intervalle.
https://processing.org/reference/random_.html
Hors ligne
Les générateurs de valeurs aléatoires peuvent être des suites "chaotique" qui ont une distribution de leur résultat homogène pour éviter d'avoir des valeurs qui sortent plus souvent que d'autres.
En général la suite de valeurs dépend de la première. C'"est pour ça que dans certain cas on obtient toujours la même suite alors que c'est sensé être des tirage au sort ! Pour éviter ça, les fonctions "randomize" ont pour but de générer une valeur initiale différente, elle aussi prise au hasard si ça veut dire quelque chose !
Hors ligne
Merci pour vos réponses,
Effectivement c'est un bon départ !!
En modifiant
i < 10
en
i < 1
j'ai un seul cube qui se place de façon aléatoire.
En copiant
for (int i = 0; i < 10; i++) { pushMatrix(); translate(random(100, 400), random(100, 400), random(100, 400)); rotateY(random(0, PI)); noFill(); box(40, 20, 50); popMatrix(); }
J'arrive à avoir différentes taille de cube qui se répartissent aléatoirement.
Cependant, il semblerait que les volumes ait tendances à se répartir surtout vers l'angle supérieur droit, et ce même si je redimensionne la taille de la fenêtre.
Est il également possible de définir un cube dans lequel ceux-ci évolueraient ? Ainsi que d'obtenir leurs coordonnés afin de les reporter dans un espaces physique.
Merci pour les liens en rapport avec le bruit de perlin mais je m'étais déjà renseigné sur le sujet.
En fait se qui m'intéresse c'est de savoir comment la fonction random() choisie le nombre "aléatoire".
On m'avait par exemple parlé de logiciel qui effectué un certain nombre d'opération en partant de l'heure qu'il était (l’heure amenant ainsi un facteur aléatoire dans l'opération) ou aussi de création d'aléatoire grâce aux vibrations d'un cristal de quartz.
Joyeux Anniversaire à Codelab en passant !
Hors ligne
Non, ils ont la même taille sauf qu'il sont plus près de la caméra et donc paraissent plus grand. Le cube est définit avec la méthode bo() :
https://processing.org/reference/box_.html
L'instruction for est une boucle qui permet d'éviter de recopier du code :
https://processing.org/reference/for.html
Hors ligne
Pages: 1