Bonjour à tous !
Je me présente, Quentin, étudiant en jeu vidéo et graphiste de base. On a un projet de groupe qui a pour sujet de créer un jeu avec processing.
Ainsi me voilà lancé dans ce logiciel à m'amuser bien que je n'ai pas l'âme d'un codeur.
Je vous expose mon problème : on veut animer 2 objets ( on prendra l'exemple de 2 cubes ) en Y. Ces 2 cubes sont reliés l'un et l'autre grâce à une courbe sinusoïdal ( un espèce d'arc électrique ). L'intérêt est que lorsque ces cubes ont le même Y on a une belle sinusoïdal ( ou moche, c'est pareil ! ) de dessiner, plus les 2 cubes s'écartent, plus la courbe se tend jusqu'à être une ligne droite.
En gros voici ce que ça donne quand les 2 cubes ( les 2 O ) ont le même Y:
O/\/\/\/\/\O
Voici dans le cas extrême :
O
\
\
\
\
\
O
J'espère que mes magnifiques dessins vous aideront à mieux comprendre !!
Si quelqu'un a une piste, une idée de comment faire je suis preneur. J'ai récupéré différents trucs sur le net mais je ne suis arrivé à rien. Vous nous sauverez la vie !!
Leuprochon
Hors ligne
Bonjour,
Un truc comme cela :
PVector cube1, cube2; void setup() { size(800, 400); rectMode(CENTER); cube1 = new PVector(100, 200); cube2 = new PVector(700, 200); } void draw() { background(255); rect(cube1.x, cube1.y, 40, 40); rect(cube2.x, cube2.y, 40, 40); float a = 0.0; float increment = TWO_PI/80.0; float amplitude; translate(100, 200); noFill(); beginShape(); for (int i = 0; i < 600; i++) { amplitude = 2000 / (cube2.x - cube1.x); vertex(i * (cube2.x - cube1.x) / 600, amplitude * sin(a)); a = a + increment; } endShape(); } void mouseDragged() { cube2.x = mouseX; }
A toi ensuite de trouver la courbe d'amplitude pour ton rendu visuel.
Hors ligne
Salut !
Merci, c'est super ! Il reste plus qu'à l'adapter pour que ce soit sur l'axe Y !! Merci encore (;
Quentin
Hors ligne
Me revoilà !
Ce que tu m'as proposé est vraiment l'effet que je veux mais je n'arrive pas à l'adapter comme voulu. Le déplacement se fait sur l'axe Y et non X comme dans le code actuel.
J'arrive à faire en sorte que la courbe soit influencé du à l'axe Y de mes cubes, cependant elle reste en ligne droite. c'est à dire que peu importe la coordonnée Y de mes cubes, elle reste à y = 200.
J'ai essayé de faire que le début de ma courbe soit lié au coordonnée X et Y de mon cube1, et idem pour le cube2 en ce qui concerne la fin de la courbe.
Je sais pas si j'arrive à être clair ... Le dessin dans mon premier post représente bien le mouvement que je veux. Peu importe l'axe Y de mes cubes, ils doivent être constamment relié. Sachant que mes cubes ne bougeront jamais en X
Quentin
Dernière modification par Leuprochon (2013-02-21 10:28:13)
Hors ligne
Alors, je pense que ceci devrait te convenir :
Dernière modification par Mushussu (2013-02-21 22:03:35)
Hors ligne
Merci c'est nickel !! Tu me sauves (;
Quentin
Hors ligne
Pages: 1