Bonsoir
Je cherche à faire une anim par code de "déroulement de poster" (une ligne qui s'enroule)
J'ai fini par pondre un code qui marche, mais je voudrais pouvoir l'optimiser :
Code :
- float px=0.f;
- float py=0.f;
- for (int i=0;i<=100;i++)
- {
- float xF = float(i)/100.f;
- float R=1.0f;
- float a=0.0f;
- if (xF>l)
- R=(1.0-(xF-l));
- if (xF>l)
- a=(M_PI*2.f * 7.f)*(l-xF); // Une fois enroulée, ma ligne fera 7 tours sur elle-même
-
- px+=cos(a)*R/100.f;
- py+=sin(a)*R/100.f;
- // Je me retrouve avec la position finale de mon point dans l'interval [0,1]
- }
|
'l' c'est la valeur d'enroulement, si c'est égale à 0 la ligne est enroulé, si c'est égale à 1 c'est déroulé.
Le code fonctionne bien, le soucis c'est que j'incrémente les valeurs px/py. Or ce code est destiné à manipuler des vertices en GLSL, et pour l'appliquer je dois recalculer la position de chaque point en ré-utilisant la position de tous les anciens.. c'est pas très propre
Au final, je cherche à avoir exactement le même résultat, mais sans avoir à incrémenter px et py (donc sans avoir à connaître la position des points précédent), quelqu'un aurait une idée ? (Je suis pas terrible terrible en math )
Merci à vous
edit : Si jamais je ne me fait pas comprendre, je peux toujours poster un gif pour monter
Message édité par Terminapor le 18-10-2012 à 23:39:08
---------------
Perhaps you don't deserve to breathe