Annonce

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


#1 2014-01-19 12:47:22 Essai de texture

windja
membre
Date d'inscription: 2014-01-17
Messages: 17

Essai de texture



Bonjour,
toujours dans une optique de compréhention de la bête processing,
j'ai tenté de réalisé la texture ci-jointe.

void setup(){
  size(500, 500);
  stroke(255);
}

void draw(){
background(0);

for (int i = 50; i < 450; i = i + 15) {
  for (int j = 50; j < 450; j = j + 15) {
    line(i-5, j-5, i+5, j+5);
  }
}

}

Mais voilà ce n'est pas exactement ce que j'ai cherché a réalisé.
Ce que j'aimerais c'est qu'a partir du x et y qui correspond à i et j
dans mes deux répétitions, les lignes s'inclinent de 15 degrés, ainsi
les lignes feraient un tour complet entre le coin haut gauche et le coin
bas droit.

Merci d'avance.

Hors ligne

 

#2 2014-01-19 17:34:07 Re : Essai de texture

Olivier
N°4
Lieu: Chalon sur la Saône
Date d'inscription: 2009-04-07
Messages: 1471
Site web

Re: Essai de texture



Hello...

Désolé, mais je ne suis pas sûr d'avoir compris ce que tu cherchais à faire... hmm
Pourrais-tu faire un rapide schéma à main levé dans un éditeur graphique, histoire d'être sûr que nous parlions bien de la même chose ? tongue
Merci.


L'Amour au Peuple !

Hors ligne

 

#3 2014-01-19 20:00:52 Re : Essai de texture

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

Re: Essai de texture



Un truc comme cela ?

void setup(){
  size(460, 460);
  stroke(255);
noLoop();
}

void draw(){
background(0);

for (int i = 50; i <=360; i = i + 15) {
  for (int j = 50; j <=360; j = j + 15) {
pushMatrix();
translate(50 + i,50 + j);
rotate((i+j) * TWO_PI / 720);
    line(-5,-5, 5, 5);
popMatrix();
  }
}
}

Dernière modification par Mushussu (2014-01-19 20:19:57)

Hors ligne

 

#4 2014-01-20 10:25:39 Re : Essai de texture

windja
membre
Date d'inscription: 2014-01-17
Messages: 17

Re: Essai de texture



Oui parfait !

c'est la valeur TWO_PI que je n'avais pas essayé...

à quoi sert exactement le noLoop() ?

Hors ligne

 

#5 2014-01-20 21:08:08 Re : Essai de texture

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

Re: Essai de texture



A rien, dans Processing, la méthode draw() est exécutée un certain nombre de fois par seconde. La fonction noLoop() stoppe ce processus. La fonction loop() remet cela en route.

Dernière modification par Mushussu (2014-01-20 21:08:25)

Hors ligne

 

#6 2014-01-21 07:11:46 Re : Essai de texture

windja
membre
Date d'inscription: 2014-01-17
Messages: 17

Re: Essai de texture



Ok cela nous permet donc de créer une partie fixe dans l'anime en plus du setup ?

Hors ligne

 

#7 2014-01-21 09:19:35 Re : Essai de texture

windja
membre
Date d'inscription: 2014-01-17
Messages: 17

Re: Essai de texture



Alors voila, en "bidouillant" ton code j'ai obtenu ceci,

PImage img;
int[] t1;
int taillePixel;
int largeur, hauteur;

void setup() {
  size(640, 480);
  taillePixel = 10;
  largeur = width / taillePixel;
  hauteur = height / taillePixel;
  t1 = new int[largeur * hauteur];
  for (int i = 0; i < t1.length; i++) {
    t1[i] = 0;
  }
  img = loadImage("train.jpg");
  noLoop();
}

void draw() {
  background(0);
  fill(255);
  noStroke();
  img.loadPixels();
  for (int i = 0; i < img.pixels.length; i++) {
    t1[(i / (taillePixel * width)) * largeur + (i % width) / taillePixel] += img.pixels[i] >> 16 & 0xFF;
  }
  for (int i = 0; i < t1.length; i++) {
    ellipse(taillePixel / 2 + (i % largeur) * taillePixel, taillePixel / 2 + (i / largeur) * taillePixel, t1[i] / (taillePixel * taillePixel) /15, t1[i] / (taillePixel * taillePixel) / 15);
  }
  fill(0);
    for (int i = 0; i < t1.length; i++) {
    ellipse(taillePixel / 2 + (i % largeur) * taillePixel, taillePixel / 2 + (i / largeur) * taillePixel, t1[i] / (taillePixel * taillePixel) /30, t1[i] / (taillePixel * taillePixel) / 30);
  }
}

Dans l'ensemble c'est à peut près ce que je recherchais mais est-ce la bonne manière ? ai-je fait des erreurs ?

Hors ligne

 

#8 2014-01-21 17:38:32 Re : Essai de texture

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

Re: Essai de texture



En fait tu lis uniquement la valeur de rouge pour en déduire la proportions de tes ellipses. Je te propose ceci :

    t1[(i / (taillePixel * width)) * largeur + (i % width) / taillePixel] += int(((img.pixels[i] >> 16 & 0xFF) + (img.pixels[i] >> 8 & 0xFF) + (img.pixels[i] & 0xFF)) / 3);

Qui indique la valeur de gris du pixel.
Le gris étant la moyenne des trois couleurs. Pour t'en convaincre :

size(640, 480);
PImage img = loadImage("train.jpg");
//image(img, 0, 0);
img.loadPixels();
for (int i = 0; i < img.pixels.length; i++) {
  img.pixels[i] = color(int(((img.pixels[i] >> 16 & 0xFF) + (img.pixels[i] >> 8 & 0xFF) + (img.pixels[i] & 0xFF)) / 3));
}
img.updatePixels();
image(img, 0, 0);

Sinon, tu aurais jouer sur la taille de l'ellipse et celle du pourtour avec strokeWeight(), mais je ne sais pas si c'est pertinent.
Tu peux modifier la valeur de la variable taillePixel pour modifier l'aspect du rendu.
On pourrait centrer les ronds dans leur "case".

Beau boulot.

Hors ligne

 

fil rss de cette discussion : rss

Pied de page des forums

Powered by FluxBB

codelab, graphisme & code : emoc / 2008-2024