Determiner un point sur une droite
Réponses à toutes vos questions de la 2nde à la Terminale toutes séries
-
lataupe123
- Messages: 2
- Enregistré le: 24 Mai 2009, 12:57
-
par lataupe123 » 24 Mai 2009, 13:11
Bonjour,
Je développe actuellement un jeux vidéo (un pong) et je bloque sur une question qui sera, je l'espère, facilement résolu :p
En gros, ma balle avance sur une droite de la forme y = ax + b à une certaine vitesse (10 cm/s). A un instant t elle se trouve sur un point de la droite A. A partir de là j'aimerais savoir comment obtenir le prochain point B sur cette droite se trouvant à 10 cm de A.
J'attends vos réponses avec impatience et un grand Merci d'avance !
Léo
-
Cheche
- Membre Rationnel
- Messages: 650
- Enregistré le: 17 Avr 2009, 19:25
-
par Cheche » 24 Mai 2009, 13:21
Salut,
On suppose que les mesures de y et x sont en cm.


^2 + (x_a - x_b)^2 = 100)
=>
(x_a - x_b)^2 + (x_a - x_b)^2 = 100)
=>
^2 = \frac{100}{a^2 +1})
=>

Remarque tu as donc x_b en fonction de x_a, mais tu dois prendre en compte comme tu te déplaces sur la droite.
-
phryte
- Membre Irrationnel
- Messages: 1406
- Enregistré le: 05 Juil 2008, 17:09
-
par phryte » 24 Mai 2009, 17:22
Bonjour.
Une idée de programme sous Matlab :
- Code: Tout sélectionner
clear
MV=10;%Module de la vitesse cm/s
x=0:0.1:20;
y=2*x+1;%Equation
theta=atan(2);%Angle en fonction de la Pente
V=MV*[cos(theta) sin(theta)];%Coordonnées du vecteur vitesse
A=[2 5];
dt=1;%Durée du mouvement
B=A+V.*dt;%Equation du mouvement
plot(x,y)
grid;hold on
plot(A(1),A(2),'.','MarkerSize',30)
plot(B(1),B(2),'.','MarkerSize',30)
-
lataupe123
- Messages: 2
- Enregistré le: 24 Mai 2009, 12:57
-
par lataupe123 » 24 Mai 2009, 18:14
Un grand merci à tous les deux d'avoir pris le temps de me répondre.
J'ai implementé la version de cheche avec une vitesse fixe et si j'ai bien compris ça donne ça :
- Code: Tout sélectionner
//Si le coeff directeur est positif
//afin de gerer le + ou - racine de ...
if (balle.coeffDirecteur >= 0)
{
xb = balle.x + Math.sqrt(100/(balle.coeffDirecteur^2+1));
}
else
{
//Math.abs permet d'avoir une valeur absolu pour la racine
//je me suis aperçu que -2^2 = -4 sinon :/
xb = balle.x - Math.sqrt(100/(Math.abs(balle.coeffDirecteur^2)+1));
}
var yb:Number = this.coeffDirecteur * xb;
balle.x = xb;
balle.y = yb;
Malheureusement cela ne marche pas, je m'explique : Au début de mon code j'ai : coeffDirecteur = 1. Visuellement la balle va à une allure modéré.
si je modifie sa valeur de 1 à 2 la direction de la balle est modifié mais la balle s'accélère alors que je cherche à garder une vitesse constante

Si vous avez une idée, je suis preneur :p
Léo
Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 60 invités