Bonsoir
Je vais mettre ici, tout ce qui fait figer la mayonnaise!
Le chef m'envoie aux bains dès le void draw()
Ce tableau d'imago ne serait donc point global ou un élément conceptuel m'échappe?
Sûrement, car il y a des lustres que je ne suis pas revenu dans la cuisine!
Qui vient d'être refaite à ce que dit le gérant!
Merci d'avance du coup de main au vieux marmiton!
Ps une dernière pincée de sel : effacer entre deux affichages étant parti dans ce genre de soupe?
void setup(){ size(500,500); PImage imago = createImage(400, 400, RGB); imago.loadPixels(); for (int i = 0; i < imago.pixels.length; i++) { imago.pixels[i] = color(0, 90, 102); } imago.updatePixels(); image(imago, 10, 10); } void draw(){ imago.loadPixels(); for (int i = 0; i < imago.pixels.length; i++) { imago.pixels[i] = color(random (100),random(150), random(250)); } imago.updatePixels(); image(imago, 10, 10); }
Hors ligne
Tu as déclaré ta variable PImage en locale alors qu'elle doir être globale.
Elle fonctionne ici juste dans la fonction setup().
Sinon c'est pas mal pour de la neige, on est bientôt à Noël.
Hors ligne
De ce que j'avais compris tout ce qui se trouvait dans le robot mixer void draw() tournait en rond à l'infini!
Alors comment ne passer qu'une fois sur cette déclaration de cette variable potagère ?
Hors ligne
Bonsoir,
Il suffit de renseigner une variable booléenne et de mettre une condition avant l'exécution de la création du bruit :
PImage imago; Boolean toutePremiereFois; void setup() { size(500, 500); imago = createImage(400, 400, RGB); toutePremiereFois = true; } void draw() { if (toutePremiereFois) { imago.loadPixels(); for (int i = 0; i < imago.pixels.length; i++) { imago.pixels[i] = color(random (100), random(150), random(250)); } imago.updatePixels(); toutePremiereFois = false; } image(imago, 10, 10); }
Hors ligne
Ah, bien sûr, si on a le droit d'écrire des chose avant le Void setup()
c'est pas la même chose! Voilà ce que c'est d'avoir les yeux dans le bouillon!
Mais bon, c'est toujours pas ça, car on fait quand même un test à chaque tour de roue!
J'avais dans l'idée de changer les valeurs du tableau dans l'intérieur du tourniquet
Pseudo Code:
Initialisation d'un tableau (de petit Maître
Tourniquet
affichage tableau
changement des valeurs du tableau
Aller à Tourniquet
Dernière modification par Pilou (2015-12-17 20:08:15)
Hors ligne
Quelque chose comme ça ?
PImage imago; void setup() { size(500, 500); imago = createImage(400, 400, RGB); tourniquet(); } void draw() { image(imago, 10, 10); tourniquet(); } void tourniquet() { imago.loadPixels(); for (int i = 0; i < imago.pixels.length; i++) { imago.pixels[i] = color(random (100), random(150), random(250)); } imago.updatePixels(); }
Hors ligne
Tu sais, il est parfois assez difficile de comprendre ce que les personnes qui posent des questions souhaitent. Alors si tu ajoute à cela des métaphores qu'il n'est pas aisé d'interpréter, la tâche devient ardue.
Je ne critique aucunement l'humour, les diverses congrégations geek en manque singulièrement, mais le principe du langage est de se faire comprendre malgré tout.
Voici ce que je te propose. Tu peux changer quand tu le souhaites la neige dans l'image. Ici c'est par la pression de la touche espace :
PImage imago; void setup() { size(500, 500); imago = createImage(400, 400, RGB); changementBrouillard(); } void draw() { image(imago, 10, 10); } void keyPressed() { if (key == ' ') { changementBrouillard(); } } void changementBrouillard() { imago.loadPixels(); for (int i = 0; i < imago.pixels.length; i++) { imago.pixels[i] = color(random (100), random(150), random(250)); } imago.updatePixels(); }
Hors ligne
Excellent, cela me remet les idées en place!
Autant la solution d'Olivier correspond à la logique que je subodorais.
Autant la solution de Mushussu heurte ma sensibilité!
Je croyais plus à un truc du genre où tout part du noyau
void draw() { changementBrouillard(); image(imago, 10, 10); attente(); }
Pas encore trouver comment adapter la syntaxe du KeyPressed à cet état de fait mais pas grave...
Mais sinon très bien, je peux continuer mes élucubrations!
Je ne vais pas tarder à revenir avec des interrogations sur les couleurs de pixels et la meilleure façon
de les traiter!
Dernière modification par Pilou (2015-12-18 01:11:32)
Hors ligne
Plat de résistance.
Soit faire un petit "magnétoscope" permettant de surfer sur les images possibles d'un écran de taille X,Y donnée.
Pour fixer les idées un écran de 1000 * 1000 pixels avec 16 777 216 couleurs en théorie
donne 16 777 216 puissance 1.000.000 images possibles soit un nombre de 72 Milliards de chiffres à la louche!
(c'est un grand nombre!
un écran 500 * 500 pixels avec le même nombre de couleurs donne un nombre de 1.8 Milliard de chiffres à la louche!
(Plus petit mais grand quand même)
Ces listes d'images possibles sont donc finies, triées, ordonnées suivant le codage couleur employé.
Il suffit de parcourir ces listes pour en afficher une image.
Il va de soit qu'il y aura plus d'images de "bruit" que d'images intelligibles pour nos yeux ébaubis!
Estimer ce pourcentage à la louche peut permettre de restreindre le domaine de recherche.
Par contre il existe de fait un écart moyen entre ces images "intelligibles", une sorte de Graal! (le Pas)
Devrait pouvoir fonctionner avec 4/5 touches tout au plus.
Flèches Haut / Bas : Incrémenter / Décrémenter le Pas
Flèches Gauche : Droite : Marche Avant / Arrière
Flèches enfoncées + SHIFT: calcul en Interne (dernière image affichée)
Flèches enfoncées: Affichage de l'image (sans arrêt)
Flèches relâchées Affichage de l'image Arrêt
On peut noter qu'une image se retrouve plusieurs fois dans ces listes à quelques pixels près!
Que le Pas peut être une image elle-même.
Que tout univers observable à une taille d'écran donnée se trouve dans ces listes! Même à l'échelle 1!
De même que l'affichage du futur programme qui va les afficher! Par parties bien sûr!
A suivre...
Dernière modification par Pilou (2015-12-18 15:33:03)
Hors ligne
Pour ta bibliographie, sache que, dans le même esprit, un projet a déjà écrit tous les livres possibles de 3200 caractères, ce qui fait déjà 10⁴⁶⁷⁷ livres...
https://libraryofbabel.info
Un autre a écrit toutes les mélodies possibles (y compris Blurred Lines) :
https://www.youtube.com/watch?feature=p … apI#t=1814
Hors ligne
Pour un écran 1000*1000 et 16.777.216 couleurs
L'index de la liste est l'image elle-même: évidemment pas question de "lister" cette liste, les univers connus n'y suffiraient pas, on ne fait que se positionner dessus!
l'index de l'image va de 0 à 999.999
la couleur du pixel d'une image se trouve dans l'index du tableau de l'image
les temps de conversions (si besoin) seront-ils négligeables quand il faudra les appliquer des millions de fois?
d'où l'emploi différents de systèmes Hexa, Decimal, ou en Base 16.777.215
Le système décimal permettra l'emploi direct de Modulo si besoin
Tableaux Uni-dimentionnels (une "bande") pour éviter des opérations de réaffectations, des boucles multiples.
Pré-calcul d'une famille de Pas:
d'un même nombre que le nombre de pixels, en "bandelettes" , d'une "force de couleur" inversement proportionnelle à leurs "longueurs".
La réaffectation d'un tableau de l'image (1 million de pixels) en interne (sans réaffichage de l'image)
se faisant 10 000 fois en une vingtaine de secondes, il va falloir jouer sur la taille du Pas et non trop compter sur sa répétition!
Dernière modification par Pilou (2015-12-22 10:57:31)
Hors ligne
Hello
Les yeux dans le bouillon!
Pourquoi les images n'apparaissent pas l'une après l'autre, en boucle (même très rapidement) et restent bloquées sur la dernière?
(elles existent bien toutes les deux, car quand j'inverse dans le "void draw()", c'est la deuxième qui se bloque! )
Je ne montre pas la 2ème, elle est trop connue la Mona du Léonard! Là c'est Edward H qui s'y colle!
La page de la documentation ne m'aide en rien sur cet état de fait!
PImage joko; PImage bato; void setup() { size(999, 999); joko = loadImage("joc2.jpg"); bato= loadImage("boat.jpg"); } void draw() { image(joko, 0, 0,999,999); image(bato, 0, 0,999,999); //image(bato, 0, 0,999,999); //image(joko, 0, 0,999,999); }
Dernière modification par Pilou (2015-12-22 12:34:56)
Hors ligne
Bonjour,
En fait, la fenêtre de visualisation se remplit à la fin de la méthode draw(). C'est à dire tu peux construire ton image avec des bouts de couleurs, mais ils ne s'afficheront pas progressivement, mais en même temps.
Si tu souhaites afficher une image puis une autre :
PImage joko; PImage bato; void setup() { size(999, 999); joko = loadImage("joc2.jpg"); bato= loadImage("boat.jpg"); } void draw() { if (frameCount % 2 == 0) { image(joko, 0, 0,999,999); } else { image(bato, 0, 0,999,999); } //image(bato, 0, 0,999,999); //image(joko, 0, 0,999,999); }
Hors ligne
Excellent! Effectivement il vaut mieux le savoir! Je pense que je ne suis pas au bout de mes surprises!
Un petit délai histoire de ralentir le clignotement et c'est tout bon!
Enregistré à la volée avec le fabuleux simplissime free GifCam (site VF)
(il y a bien d'autres fariboles sur ce site)
Dernière modification par Pilou (2015-12-22 22:54:57)
Hors ligne