détermination de la direction d'un mouvement rectiligne d'un objet
Règles du forum
Merci de respecter la NOMENCLATURE suivante pour vos TITRES de messages :
Commencez par le niveau de vos scripts
DB = Débutant
MY = Moyen
CF = Confirmé
Puis le domaine d'application
-RS = Réseau
-AL = Algorithmie
Exemple :
[DB-RS] Mouvement perso multijoueur
Merci de respecter la NOMENCLATURE suivante pour vos TITRES de messages :
Commencez par le niveau de vos scripts
DB = Débutant
MY = Moyen
CF = Confirmé
Puis le domaine d'application
-RS = Réseau
-AL = Algorithmie
Exemple :
[DB-RS] Mouvement perso multijoueur
- Kaloverian
- Messages : 345
- Inscription : 10 Août 2016 03:03
Re: détermination de la direction d'un mouvement rectiligne d'un objet
j'ai maintenant concocté un script permettant normalement de calculer la vitesse d'un objet.
Hélas,il ne fonctionne pas bien
Avant de le poster,je demande s'il existe une fonction dans l'API qui permet de récupérer la vitesse instantanée(en vecteur 3) d'un objet en mouvement
Hélas,il ne fonctionne pas bien
Avant de le poster,je demande s'il existe une fonction dans l'API qui permet de récupérer la vitesse instantanée(en vecteur 3) d'un objet en mouvement
Re: détermination de la direction d'un mouvement rectiligne d'un objet
Si l'objet a un rigidbody, c'est sa vélocité.
S'il n'en a pas, tu peux la calculer dans l'update :
S'il n'en a pas, tu peux la calculer dans l'update :
- vitesse nulle -> return 0
- calculer vitesse = (nouvelle position - ancienne position) / deltaTime
- ancienne position = nouvelle position
- return vitesse
- Kaloverian
- Messages : 345
- Inscription : 10 Août 2016 03:03
Re: détermination de la direction d'un mouvement rectiligne d'un objet
....et pour obtenir l'accélération tangentielle de l'objet en mouvement?
son accélération normale?
son accélération normale?
- boubouk50
- ModoGenereux
- Messages : 6247
- Inscription : 28 Avr 2014 11:57
- Localisation : Saint-Didier-en-Bresse (71)
Re: détermination de la direction d'un mouvement rectiligne d'un objet
a=dv/dt - L'accélération est la dérivée de la vitesse, c'est à dire, la vitesse par unité de temps.
il suffit de regarder les unités.
v = m/s (mètre par seconde)
a = m/s² (mètre par seconde au carré)
Donc
a = v/t
il suffit de regarder les unités.
v = m/s (mètre par seconde)
a = m/s² (mètre par seconde au carré)
Donc
a = v/t
"Ce n'est pas en améliorant la bougie, que l'on a inventé l'ampoule, c'est en marchant longtemps."
Nétiquette du forum
Savoir faire une recherche
Apprendre la programmation
Nétiquette du forum
Savoir faire une recherche
Apprendre la programmation
- Kaloverian
- Messages : 345
- Inscription : 10 Août 2016 03:03
Re: détermination de la direction d'un mouvement rectiligne d'un objet
oui je sais ceci en théorie
mais je demande s'il existe des fonctions de l'API qui fournissent ces accélérations(en tant que vecteur3)
mais je demande s'il existe des fonctions de l'API qui fournissent ces accélérations(en tant que vecteur3)
- boubouk50
- ModoGenereux
- Messages : 6247
- Inscription : 28 Avr 2014 11:57
- Localisation : Saint-Didier-en-Bresse (71)
Re: détermination de la direction d'un mouvement rectiligne d'un objet
Une accélération sera un float pas un Vecteur3, c'est une valeur, pas une direction.
Donc ta demande n'est peut pas la bonne.
Donc ta demande n'est peut pas la bonne.
"Ce n'est pas en améliorant la bougie, que l'on a inventé l'ampoule, c'est en marchant longtemps."
Nétiquette du forum
Savoir faire une recherche
Apprendre la programmation
Nétiquette du forum
Savoir faire une recherche
Apprendre la programmation
- Kaloverian
- Messages : 345
- Inscription : 10 Août 2016 03:03
Re: détermination de la direction d'un mouvement rectiligne d'un objet
en physique,l'accélération est un vecteur
- boubouk50
- ModoGenereux
- Messages : 6247
- Inscription : 28 Avr 2014 11:57
- Localisation : Saint-Didier-en-Bresse (71)
Re: détermination de la direction d'un mouvement rectiligne d'un objet
Si elle est un vecteur, alors c'est que la valeur de l'accélération est multipliée par le vecteur directionnel normalisé. Pareil pour la vélocité (vitesse).
Il te suffit donc de calculer le vecteur directionnel et de le normaliser puis de le multiplier par l'accélération qui est la dérivée de la vélocité dans le temps.
Mais non, je ne sais pas si une API te la calcule pour toi. Heureusement, il y a internet:
https://answers.unity.com/questions/148 ... curat.html
https://gamedev.stackexchange.com/quest ... s-massless
Il te suffit donc de calculer le vecteur directionnel et de le normaliser puis de le multiplier par l'accélération qui est la dérivée de la vélocité dans le temps.
Mais non, je ne sais pas si une API te la calcule pour toi. Heureusement, il y a internet:
https://answers.unity.com/questions/148 ... curat.html
https://gamedev.stackexchange.com/quest ... s-massless
"Ce n'est pas en améliorant la bougie, que l'on a inventé l'ampoule, c'est en marchant longtemps."
Nétiquette du forum
Savoir faire une recherche
Apprendre la programmation
Nétiquette du forum
Savoir faire une recherche
Apprendre la programmation
- Kaloverian
- Messages : 345
- Inscription : 10 Août 2016 03:03
Re: détermination de la direction d'un mouvement rectiligne d'un objet
pour répondre à mhoubre qui me dit:
"Si l'objet a un rigidbody, c'est sa vélocité"
Ben non,la preuve d'après ce petit script:
A chaque appui de la touche I,direction=(0,0,0) alors que l'objet dévie sur sa translation.
Peut-on me corriger ce petit script por que direction ne soit pas toujours Vector3.zero?
"Si l'objet a un rigidbody, c'est sa vélocité"
Ben non,la preuve d'après ce petit script:
Code : Tout sélectionner
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
//code non OK
public class deviation : MonoBehaviour
{
public GameObject obj;
Rigidbody rt;
Vector3 veloc;
// Start is called before the first frame update
void Start()
{
obj.AddComponent<Rigidbody>();
}
// Update is called once per frame
void Update()
{
if (Input.GetKeyDown(KeyCode.I))
{ obj.transform.Rotate(0,30,0);
rt=obj.GetComponent<Rigidbody>();
veloc=rt.velocity;
print("direction: ("+veloc.x+","+veloc.y+","+veloc.z+")");
}
obj.transform.Translate(Vector3.right*Time.deltaTime);
}
}
Peut-on me corriger ce petit script por que direction ne soit pas toujours Vector3.zero?
- boubouk50
- ModoGenereux
- Messages : 6247
- Inscription : 28 Avr 2014 11:57
- Localisation : Saint-Didier-en-Bresse (71)
Re: détermination de la direction d'un mouvement rectiligne d'un objet
Si tu fabriques toi même les preuves... Ce script n'est pas bon.Kaloverian a écrit : ↑25 Mars 2023 03:13pour répondre à mhoubre qui me dit:
"Si l'objet a un rigidbody, c'est sa vélocité"
Ben non,la preuve d'après ce petit script:
JMHoubre a raison, la vitesse directionnelle d'un rigidbody est sa vélocité. Pour avoir la vélocité, il faut passer par le rigidbody pour les transformations. tu ne peux pas faire ça:
Code : Tout sélectionner
obj.transform.Translate(Vector3.right*Time.deltaTime);
Passer par les AddForces ou MovePosition.
Maintenant, si tu colles un rigidbody sur l'objet uniquement pour connaître la vitesse, autant ne pas le mettre et la calculer toi-même. Vitesse = distance / temps. Donc à l'instant t, elle vaut le déplacement que tu lui donnes divisé par le deltaTime, sinon, tu peux prendre plus large (et plus lissé) en calculant la distance parcourue 1 fois par seconde.
"Ce n'est pas en améliorant la bougie, que l'on a inventé l'ampoule, c'est en marchant longtemps."
Nétiquette du forum
Savoir faire une recherche
Apprendre la programmation
Nétiquette du forum
Savoir faire une recherche
Apprendre la programmation