Partagez
Aller en bas
avatar
vincent26
Membre

Nombre de messages : 766
Age : 22
Localisation : baume de transit le village paumé
Distinction : aucune
Date d'inscription : 17/08/2010

Résolu [résolu]Probleme de courbe

le Jeu 2 Oct 2014 - 22:45
Salut ce sujet peut sembler completement hors sujet de RM mais je vous assure que non ^^

Je cherche a programmer le chemin d'une flêche par une courbe en cloche

Je cherche un équation du type Y = a*X² + b*X + c

Je connait la position de 2 point et je définit une hauteur de la cloche de K

Voici une image explicative


x,y,u,v,K sont connu

u peut-être inférieur a x

v peut être supérieur a y et dans ce cas K se fait par rapport a  v

Comme vous pouvez le voir le repères en haut a gauche est particulier

X appartient a l'intervalle [0,1600]
Y appartient a l'intervalle [0,900]

Voila si quelqu'un peut m'aider mirci d'avance Wink


Dernière édition par vincent26 le Sam 11 Oct 2014 - 17:44, édité 1 fois
avatar
Balbereith
Staffeux retraité

Nombre de messages : 4129
Age : 25
Localisation : dans l'ombre...
Distinction : Péripatéticienne à temps perdu
Helly n°666 [Coco' ;D]
mon ptit balbounet p'tit jardinier en herbe(les râteaux ça le connait) [tonton Adurna]
Cultivateur professionnel de la commu' (il a de bons outils en de nombreux exemplaires ) [Coco' Smile]
Date d'inscription : 13/05/2009

Résolu Re: [résolu]Probleme de courbe

le Jeu 2 Oct 2014 - 23:33
Je vais voir ce que je peux faire ^^ Laisse-moi prendre un papier et un stylo et je reviens ^^
avatar
vincent26
Membre

Nombre de messages : 766
Age : 22
Localisation : baume de transit le village paumé
Distinction : aucune
Date d'inscription : 17/08/2010

Résolu Re: [résolu]Probleme de courbe

le Jeu 2 Oct 2014 - 23:41
yep on est dessus depuis prés de 2 jour a trois ^^

mais toute les solution qu'on trouve bug pour la taille de l'écran et fonctionne pour de petite valeur

si tu as d'autre idée pour faire une cloche hésite pas Wink

je te conseille maple pour la résolution d'équation
avatar
Balbereith
Staffeux retraité

Nombre de messages : 4129
Age : 25
Localisation : dans l'ombre...
Distinction : Péripatéticienne à temps perdu
Helly n°666 [Coco' ;D]
mon ptit balbounet p'tit jardinier en herbe(les râteaux ça le connait) [tonton Adurna]
Cultivateur professionnel de la commu' (il a de bons outils en de nombreux exemplaires ) [Coco' Smile]
Date d'inscription : 13/05/2009

Résolu Re: [résolu]Probleme de courbe

le Ven 3 Oct 2014 - 0:18
Alors vu que j'a pas mapple sous la main, tu vas devoir bosser un peu ^^, je vais te dire la marche à suivre (pour moi les calculs sont fastidieux à la main donc si je te donne la méthode que j'envisage, tu peux me dire si cela abouti au niveau calculatoire mais normalement si les équitations tournent pas en boucle les unes par rapport aux autres ça devrait marcher ^^'

Bon déjà, en regardant ton dessin, on a quasiment trois points à une coordonnées prêt, on a (x,y), (u, v) , et (?, K). On peut utiliser les méthodes d'interpolation de Lagrange sans aucun soucis. Qui nous dit, il existe un unique polynôme de degré N qui passe par N+1 points distincts. Tu cherches un polynôme de degré 2, il faut donc 3 points pour résoudre la question.

La seule donnée qui nous manque pour construire un troisième point, le (?,K) en question, nous allons nous servir du fait que K est la flèche de ta trajectoire, c'est à dire point où ton projectile à une vitesse verticale nulle. Mathématiquement parlant, c'est un extremum de ta fonction. Et les extrema ont les traquent à grand coût de dérivée. La dérivée du polynôme : f(x) = ax² + bx +c est sans surprise : f'(x) = 2ax+b. Le point (?, K) définie un extremum (local) si f'(?) = 0 donc notre ? = -b/2a.

Nous avons donc nos trois points : (x,y), (u,v), (-b/2a, K)
Tu peux appliquer la méthode de l'interpolation de Lagrange, dont voici une petite explication : http://fr.wikipedia.org/wiki/Interpolation_lagrangienne
J'ai calculé les trois polynômes de Lagrange associée mais pas le courage de les combinées à toi de jouer ^^
f0(X) = [(X-u)/(x-u)]*[(X+b/2a)/(x+b/2a)]
f1(X) = [(X-x)/(u-x)]*[(X+b/2a)/(u+b/2a)]
f2(X) = [(X-x)/(-b/2a-x)]*[(X-u)/(-b/2a -u)]

Tu ne devrais obtenir un polynôme avec seulement a et b, tu peux extraire le c (sans la partie constante du polynôme). Donné par : L(X) = y * f0(x) + v f1(X) + K f3(X). Il faut juste regrouper les termes constants, en X, et en X²

Hors deux polynômes sont identiques ssi les coefficient sont identiques, tu peux idenfier les coefficient 1 à 1 et sortir a, b et c en fonction des coordonnées des points.

Est-ce que tu peux réaliser ces résolutions sur Mapple et me donner ce que tu obtiens, s\'il te plaît ? Car il reste toujours a et b à trouver et la méthode dépends de tête des équations...
avatar
vincent26
Membre

Nombre de messages : 766
Age : 22
Localisation : baume de transit le village paumé
Distinction : aucune
Date d'inscription : 17/08/2010

Résolu Re: [résolu]Probleme de courbe

le Ven 3 Oct 2014 - 12:45
Cela je l'ai déjà tester c'est une simple résolution d'équation mais il y a de nombreux bug

Il semble que les valeur de a,b,c que je trouve pour mon équation donne lors des calcul des valeur trop elever ou trop faible qui sont arrondi par l'ordinateur et donc font complétement bugué la trajectoire

Je pense qu'il faudrait trouver une autre méthode pour faire une belle cloche pas forcement en ax²+bx+c

merci quand même en tout cas Wink

(ce n'est pas exactement (-b/2a, K) mais (-b/2a,min(y,v)-K) Wink )

(juste pour rire voici la tête des solution :
1 er triplet solution :

a = (y-2*K+v+2*sqrt(-y*K+y*v+K^2-K*v))/(-x+u)^2
b = -(y*u-v*u+u*(y-2*K+v+2*sqrt(-y*K+y*v+K^2-K*v))-y*x+v*x+x*(y-2*K+v+2*sqrt(-y*K+y*v+K^2-K*v)))/(-x+u)^2
c =(x^2*v-v*x*u+y*u^2-u*y*x+u*x*(y-2*K+v+2*sqrt(-y*K+y*v+K^2-K*v)))/(-x+u)^2

2 eme triplet solution :

a = (y-2*K+v-2*sqrt(-y*K+y*v+K^2-K*v))/(-x+u)^2
b = -(y*u-v*u+u*(y-2*K+v-2*sqrt(-y*K+y*v+K^2-K*v))-y*x+v*x+x*(y-2*K+v-2*sqrt(-y*K+y*v+K^2-K*v)))/(-x+u)^2
c = (x^2*v-v*x*u+y*u^2-u*y*x+u*x*(y-2*K+v-2*sqrt(-y*K+y*v+K^2-K*v)))/(-x+u)^2

)
avatar
Balbereith
Staffeux retraité

Nombre de messages : 4129
Age : 25
Localisation : dans l'ombre...
Distinction : Péripatéticienne à temps perdu
Helly n°666 [Coco' ;D]
mon ptit balbounet p'tit jardinier en herbe(les râteaux ça le connait) [tonton Adurna]
Cultivateur professionnel de la commu' (il a de bons outils en de nombreux exemplaires ) [Coco' Smile]
Date d'inscription : 13/05/2009

Résolu Re: [résolu]Probleme de courbe

le Ven 3 Oct 2014 - 18:09
Hum, on peut toujours changer quelques trucs. Pour gérer la courbe on peut passer par la méthode d'Euler (c'est à la base une méthode d'approximation pour équa diff) pour cela il te faut un point, angle de base et une vitesse de base. (Les méthode de Runge-Kutta implique des intégrale donc pas employable sur RM je pense). Mais ça permettrai de construire la courbe (et la méthode est bien plus proche de la réalité physique). La vitesse pourrait être fixe, l'angle pourrait être déterminer par un calcul sur la flèche c'est à dire K et de la portée P. Mais faudra un petit travail documentaire avant ^^'

EDI : la tête des solutions ne m'étonne pas et sont certainement les bonnes, c'est plutôt RM qui fait chier sur le coup ^^

EDIT2 : Même pas besoin de passer par Euler en fait...
dans notre repère particulier : y(x) = 0.5*g*((x-x0)/Vx)² - Vy*(x-x0)/Vx - y0
où x0, y0 sont les coordonnées d'origine du tir, g la gravité (tu peux bien définir une gravité ^^)
Vx et Vy sont les projetées de la vitesse sur l'axe x et y si tu définie une vitesse constante V (on devrait s'en sortir) Vx = Vcos a et Vy = -Vsin a

On doit pouvoir trouver l'angle qui nous faut en fonction de K.

Encore mieux : voici la formule de la portée qui devrais convenir à notre cas :

d = (Vcosa)/g *(-Vsina + sqrt((Vsina)²+2g(y1-y0))   y1 est ton petit v du point (u,v)
Or on la connait la portée : d = X1 - X0
ainsi tu as : X1 - X0 = (Vcosa)/g *(-Vsina + sqrt((Vsina)²+2g(y1-y0))
Tu devrais pourvoir en tirer a
avatar
vincent26
Membre

Nombre de messages : 766
Age : 22
Localisation : baume de transit le village paumé
Distinction : aucune
Date d'inscription : 17/08/2010

Résolu Re: [résolu]Probleme de courbe

le Dim 5 Oct 2014 - 0:02
Oki merci beaucoup je vais faire la résolution sur mapple pour a et V je te tient au courant (sinon je vient de me rendre compte d'un truc (et je vient de m'en rappeler aussi ...) mais en ruby 2/3 = 0 et 2.0/3.0 = 0.666666 :/ d'ou surement des bug supplémentaire dans la courbe)

EDIT :
première version marche mai ave encore un bug au niveaux de la hauteur de la pointe de la parabole et surtout que la parabole fait une pointe verticale pour que le héros tir a ces pied (totalement ridicule XD ) du coup je vais voir ton truc Wink (il faut d'abord que je me penche sur le projet de SPY je lui ai promis ^^ je te tient au courant mais en tout cas merci beaucoup)
avatar
Zangther
Membre

Nombre de messages : 892
Distinction : aucune
Date d'inscription : 06/02/2013

Résolu Re: [résolu]Probleme de courbe

le Dim 5 Oct 2014 - 12:19
C'est normal. Si tu divises des entiers entre eux, tu auras un résultat entier. Utilises des valeurs décimales ou applique leur un to_f afin d'avoir des résultats précis.
avatar
vincent26
Membre

Nombre de messages : 766
Age : 22
Localisation : baume de transit le village paumé
Distinction : aucune
Date d'inscription : 17/08/2010

Résolu Re: [résolu]Probleme de courbe

le Sam 11 Oct 2014 - 17:44
Bon du coup j'ai changer de méthodes n’arrivent a aboutir a rien avec les courbe de Lagrange , les equation du second degrés simple et les equation mécanique de tir d'un canon

du coup j'ai utiliser une équation du seconde degrés sur le plan liant les 2 point équation laquelle j'ai effectuer une rotation
du coup c'est bon sujet résolut Wink
avatar
Heaven
Staffeux retraité

Nombre de messages : 2451
Age : 17
Localisation : Alpes-Maritimes VIRILITÉ OLALA
Distinction : Aucune
Date d'inscription : 18/10/2012

Résolu Re: [résolu]Probleme de courbe

le Sam 11 Oct 2014 - 18:24
Je déplace (:


Heav'n
Contenu sponsorisé

Résolu Re: [résolu]Probleme de courbe

Revenir en haut
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum