Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1558 connectés 

  FORUM HardWare.fr
  Programmation
  Algo

  Courbe sinusoïdale entre deux points

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Courbe sinusoïdale entre deux points

n°2273724
dwogsi
Défaillance cérébrale...
Posté le 18-01-2016 à 21:13:17  profilanswer
 

Bonjour,
 
Dans le cadre d'un jeu, j'essaie actuellement de générer un plan qui va dans une seule direction et dont l'élévation varie de temps en temps.
En gros, on peut considérer les choses en 2D et simplement voire une courbe qui, de temps en temps, monte ou descend en suivant une forme sinusoïdale.
J'espère que c'est clair  :??:  
 
L'objectif c'est donc d'avoir une fonction qui retourne une valeur y pour un x donné. En générale y ne varie pas et, de manière aléatoire, on génère une variation de l'élévation.
 
Etant donné que je veux une forme sinusoïdale entre deux élévation de la courbe, j'utilise un sinus() auquel je passe un angle qui varie de PI+PI/2 à PI/2. Ca représente exactement la portion de courbe que je veux reproduire.
 
Bref, un exemple en JS de ce que j'ai pondu pour passer d'une élévation à l'autre avec une belle courbe :
 

Code :
  1. var angle = {
  2.    from: Math.PI + Math.PI/2,
  3.    to: Math.PI/2
  4. }
  5.  
  6. var elevation = {
  7.    from: 100,
  8.    to: 0,
  9.    tilt: 0.1 // inclinaison
  10. }
  11.  
  12. for (var i = angle.from; i > angle.to; i -= elevation.tilt)) {
  13.    console.log( elevation.from + (1 + Math.sin(i)) * (elevation.to - elevation.from) / 2 );
  14. }
  15.  
  16. console.log(elevation.to);


 
Ce code log donc les différents point de la courbe entre les deux élévations données. Ça marche très bien.
Ceci-dit, je me demandais s'il quelqu'un ne voyais pas quelques optimisations à faire ? Je trouve ça étrangement compliqué pour ce que je veux faire.
 
C'est que je serai assez étonné d'avoir trouvé tout seul la meilleur solution tant je ne suis pas à l'aise avec ce genre de calculs.
 
Merci !
 
PS : Je poste en Algo parce que, après tout, que je propose une implémentation en JS ce n'est pas vraiment important.


Message édité par dwogsi le 18-01-2016 à 21:14:41

---------------
-- Debian -- Le système d'exploitation universel | Le gras c'est la vie! | /(bb|[^b]{2})/
mood
Publicité
Posté le 18-01-2016 à 21:13:17  profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Algo

  Courbe sinusoïdale entre deux points

 

Sujets relatifs
Tracer courbe de tendance VBAInsérer une image aulieu de courbe en JAVA
Ajout de points dans un classementdessiner courbe
Sécurité d'un système de points avec une valeur monétaireTracer une courbe avec Artichow
prendre les plus haut d'une courbeprendre les plus haut d'une courbe
caratcère bizarre à la place des apostrophes, des points, etcAlgorithme d'extraction de courbe
Plus de sujets relatifs à : Courbe sinusoïdale entre deux points


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR