Annonce

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


#1 2012-01-05 15:30:53 dessiner un trait qui grandit

-[eM Tv]-
membre
Date d'inscription: 2011-09-04
Messages: 51

dessiner un trait qui grandit



salut tout le monde,
j'ai une question sûrement très basique, mais j'ai beau chercher partout (bouquins, sites de références et d'examples, etc), je ne trouve pas ma réponse...

je veux simplement créer une ligne à partir d'un point.

j'ai les coordonnées X et Y de mon point d'origine et celles de mon point de fin, et je voudrais trouver la fonction qui va faire "grandir" la ligne de mon point d'origine à mon point de fin.

une succession de points qui restent affichés à l'écran me conviendrait aussi...

si quelqu'un peut m'aider, ce serait cool.

merci d'avance!
em

Hors ligne

 

#2 2012-01-05 15:32:11 Re : dessiner un trait qui grandit

-[eM Tv]-
membre
Date d'inscription: 2011-09-04
Messages: 51

Re: dessiner un trait qui grandit



ah, en fait j'ai peut-être parlé trop vite, juste après avoir posté je suis enfin tombée sur ça : http://processing.org/discourse/yabb2/Y … 1260051290 et c'est ce que je cherchais je crois...

Hors ligne

 

#3 2012-01-05 18:53:24 Re : dessiner un trait qui grandit

oyster_twiter
membre
Lieu: saint-herblain
Date d'inscription: 2008-04-01
Messages: 444
Site web

Re: dessiner un trait qui grandit



un truc dans l'esprit ? :

float x2,y2,x1,y1;

void setup() {
  x1 = 25;
  y1 = 50;
  x2 = x1;
  y2 = y1;
  
}

void draw() {
  line(x1,y1,x2,y2);
  x2 +=0.1;

}

Dernière modification par oyster_twiter (2012-01-05 18:53:42)

Hors ligne

 

#4 2012-01-05 22:36:02 Re : dessiner un trait qui grandit

emoc
@#@*$
Lieu: Quimper
Date d'inscription: 2008-01-28
Messages: 1576
Site web

Re: dessiner un trait qui grandit



Salut emtv,

Ce genre de truc peut se faire en utilisant des coordonnées polaires et un peu de trigo :

Code (processing) :

PVector origine, fin, intermediaire;
float distance;
int etape, etape_max = 20;

void setup() {
  size(500, 500);
  
  origine = new PVector(random(400)+50, random(400)+50);
  fin = new PVector();
  intermediaire = new PVector();
}

void draw() {
  strokeWeight(8);
  background(255);
  
  fin.set(mouseX, mouseY, 0);
  
  distance = (fin.dist(origine) / etape_max) * etape; 
  float a = atan2(fin.y - origine.y, fin.x - origine.x);
  
  intermediaire.set(origine.x + distance * cos(a), origine.y + distance * sin(a), 0);
  
  line(origine.x, origine.y, intermediaire.x, intermediaire.y);
  
  etape ++;
  etape %= etape_max;
}

Hors ligne

 

#5 2012-01-06 00:47:25 Re : dessiner un trait qui grandit

-[eM Tv]-
membre
Date d'inscription: 2011-09-04
Messages: 51

Re: dessiner un trait qui grandit



merci pour vos réponses, mais du coup j'ai réussi à faire ce que je voulais avec le code que j'ai cité plus haut, c'est cool wink

Hors ligne

 

#6 2012-01-06 16:08:37 Re : dessiner un trait qui grandit

-[eM Tv]-
membre
Date d'inscription: 2011-09-04
Messages: 51

Re: dessiner un trait qui grandit



alors en fait c'est pas fini !! hmm

je voudrais maintenant continuer ma ligne dans un second temps (en créer une seconde avec pour origine la fin de la première):

1. ma ligne se crée du point A au point B
2. la ligne reste affichée un certain temps (disons 5 secondes) entre A et B
3. une autre ligne se crée du point B au point C (la ligne entre A et B est toujours affichée)
4. mes deux lignes A-B et B-C restent affichées.

pour l'instant, j'ai dans mon code pour faire les étapes 1 et 2 décrites ci-dessus :

comment faire pour déclencher une seconde interpolation 5 secondes plus tard?

Hors ligne

 

#7 2012-01-07 10:27:27 Re : dessiner un trait qui grandit

cgiles
membre
Lieu: Est de la France
Date d'inscription: 2005-05-25
Messages: 329

Re: dessiner un trait qui grandit



Il faut jouer avec les else if pour tester ou tu te trouves dans ton planning :
C'est pour dessiner les cotés d'une surface, style ce qu'il se fait en mapping vidéo- si oui je bosse sur un outil pour ça- ?

Voici mon code, j'utilise le else if pour tester ou je me trouve, puis des maps pour calculer la valeur. On pourrait réduire le nombre de conditions avec un constrain.
Je pense que un Lerp pourrait également convenir pour remplacer les map : http://processing.org/reference/lerp_.html

Dernière modification par cgiles (2012-01-07 10:28:12)

Hors ligne

 

#8 2012-01-11 18:44:31 Re : dessiner un trait qui grandit

-[eM Tv]-
membre
Date d'inscription: 2011-09-04
Messages: 51

Re: dessiner un trait qui grandit



merci emoc et cgiles pour vos réponses, ça m'ouvre des perspectives !!

je vais voir quelle est la méthode qui colle le mieux à ce que je cherche à faire, entre ce que j'avais déjà trouvé et ce que vous proposez.

dans tous les cas, ça me permet d'y voir plus clair !

et pour te répondre, cgiles, non, ce n'est pas pour dessiner les côtés d'une surface, mais pour faire se succéder des tracés différents, dont les points d'origine ou de fin sont liés à des coordonnées renvoyées par des capteurs.

Hors ligne

 

fil rss de cette discussion : rss

Pied de page des forums

Powered by FluxBB

codelab, graphisme & code : emoc / 2008-2024