Package math_physics.physics
Class Simulator
java.lang.Object
java.lang.Thread
math_physics.physics.Simulator
- All Implemented Interfaces:
java.lang.Runnable
- Direct Known Subclasses:
NBodySimulator
public class Simulator
extends java.lang.Thread
Classe permettant de simuler un espace avec des corps en intéraction.
Utilisable en threads.
-
Nested Class Summary
-
Field Summary
Fields Modifier and Type Field Description protected java.util.List<GenericObject>
bodies
Correspond à la liste contenant tous les corps du simulateur.protected double
deltaTime
Correspond au nombre de secondes écoulées lors de chaque lancement de simulation.protected java.util.Random
generator
Générateur aléatoire.protected int
numberBody
Correspond au nombre de corps qui se trouve dans la simulation.Vector3D
origin
Vecteur représentant le centre de l'espace de simulation. -
Constructor Summary
-
Method Summary
Modifier and Type Method Description void
addBody(double mass, double radius, Vector3D position, Vector3D velocity)
Permet d'ajouter un objet à la liste des objets appartenant au simulateur.void
addBody(java.lang.String name, double mass, double radius, Vector3D position, Vector3D velocity)
Permet d'ajouter un objet à la liste des objets appartenant au simulateur.void
addBody(GenericObject object)
Permet d'ajouter un objet à la liste des objets appartenant au simulateur.void
addRandomBody(double massMax, double radius, double maxDistance, double maxVelocity)
Permet d'ajouter un objet créé aléatoirement à la liste des objets appartenant au simulateur.protected double
generateDouble(double min, double max)
Permet de générer un nombre flottant de type 'double' aléatoirement entre deux valeurs.protected Vector3D
generateVector3D(double max)
Permet de générer aléatoirement un vecteur 3D.java.util.List<GenericObject>
getBodies()
Permet de récupérer la liste de tous les objets appartenant à la simulation.double
getDeltaTime()
Permet de récupérer le nombre de seconde que l'on écoule lors de chaque lancement de simulation.int
getNumberBody()
Permet de récupérer le nombre de corps de la simulation.double
getTotalMass()
Permet de récupérer la masse totale du système simulé.static void
main(java.lang.String[] args)
Méthode principale.void
removeBody(GenericObject instance)
Permet de supprimer un corps de la simulation.void
run()
Permet de lancer la simulation sur un autre Thread.GenericObject
search(int ID)
Permet de retrouver un objet dans la simulation.void
setDeltaTime(double newDeltaTime)
Permet de remplacer l'ancienne valeur de l'attribut deltaTime.void
simulateAllBodies()
Permet de simuler toutes les intéractions des objets.Methods inherited from class java.lang.Thread
activeCount, checkAccess, clone, countStackFrames, currentThread, dumpStack, enumerate, getAllStackTraces, getContextClassLoader, getDefaultUncaughtExceptionHandler, getId, getName, getPriority, getStackTrace, getState, getThreadGroup, getUncaughtExceptionHandler, holdsLock, interrupt, interrupted, isAlive, isDaemon, isInterrupted, join, join, join, onSpinWait, resume, setContextClassLoader, setDaemon, setDefaultUncaughtExceptionHandler, setName, setPriority, setUncaughtExceptionHandler, sleep, sleep, start, stop, suspend, toString, yield
-
Field Details
-
origin
Vecteur représentant le centre de l'espace de simulation. -
numberBody
protected int numberBodyCorrespond au nombre de corps qui se trouve dans la simulation. -
generator
protected java.util.Random generatorGénérateur aléatoire. -
bodies
Correspond à la liste contenant tous les corps du simulateur. -
deltaTime
protected double deltaTimeCorrespond au nombre de secondes écoulées lors de chaque lancement de simulation.
-
-
Constructor Details
-
Simulator
public Simulator()Constructeur de la classe Simulator. -
Simulator
public Simulator(int numberBodyInitial, double massMax, double radius, double maxDistance, double maxVelocity)Constructeur de la classe Simulator.- Parameters:
numberBodyInitial
- Entier représentant le nombre de corps initial à créermassMax
- Masse maximum pour créer les objetsradius
- Rayon de la sphère pour l'affichagemaxDistance
- Distance initiale maximale pour placer les objetsmaxVelocity
- Vitesse initiale maximale pour déplacer les objets
-
-
Method Details
-
run
public void run()Permet de lancer la simulation sur un autre Thread.- Specified by:
run
in interfacejava.lang.Runnable
- Overrides:
run
in classjava.lang.Thread
-
generateDouble
protected double generateDouble(double min, double max)Permet de générer un nombre flottant de type 'double' aléatoirement entre deux valeurs.- Parameters:
min
- Valeur minimalemax
- Valeur maximale- Returns:
- Valeur aléatoirement tirée entre min et max
-
generateVector3D
Permet de générer aléatoirement un vecteur 3D.- Parameters:
max
- Valeur maximale- Returns:
- Vecteur contenant des valeurs aléatoirement tirées entre 0 et max
-
getNumberBody
public int getNumberBody()Permet de récupérer le nombre de corps de la simulation.- Returns:
- Nombre de corps simulé
-
getBodies
Permet de récupérer la liste de tous les objets appartenant à la simulation.- Returns:
- Liste des objets
-
getDeltaTime
public double getDeltaTime()Permet de récupérer le nombre de seconde que l'on écoule lors de chaque lancement de simulation.- Returns:
- Nombre de secondes
-
setDeltaTime
public void setDeltaTime(double newDeltaTime)Permet de remplacer l'ancienne valeur de l'attribut deltaTime.- Parameters:
newDeltaTime
- Nouvelle valeur
-
addRandomBody
public void addRandomBody(double massMax, double radius, double maxDistance, double maxVelocity)Permet d'ajouter un objet créé aléatoirement à la liste des objets appartenant au simulateur.- Parameters:
massMax
- Masse maximum pour créer les objetsradius
- Rayon de la sphère pour l'affichagemaxDistance
- Distance initiale maximale pour placer les objetsmaxVelocity
- Vitesse initiale maximale pour déplacer les objets
-
addBody
Permet d'ajouter un objet à la liste des objets appartenant au simulateur.- Parameters:
mass
- Masse totale de l'objetradius
- Rayon de l'objetposition
- Coordonnées de la position de l'objetvelocity
- Vitesse initiale de déplacement de l'objet
-
addBody
public void addBody(java.lang.String name, double mass, double radius, Vector3D position, Vector3D velocity)Permet d'ajouter un objet à la liste des objets appartenant au simulateur.- Parameters:
name
- Nom de l'objetmass
- Masse totale de l'objetradius
- Rayon de l'objetposition
- Coordonnées de la position de l'objetvelocity
- Vitesse initiale de déplacement de l'objet
-
addBody
Permet d'ajouter un objet à la liste des objets appartenant au simulateur.- Parameters:
object
- Objet
-
removeBody
Permet de supprimer un corps de la simulation.- Parameters:
instance
- Instance du corps que l'on veut retirer
-
search
Permet de retrouver un objet dans la simulation.- Parameters:
ID
- Identifiant unique de l'objet recherché- Returns:
- Objet recherché
-
getTotalMass
public double getTotalMass()Permet de récupérer la masse totale du système simulé.- Returns:
- Masse totale
-
simulateAllBodies
public void simulateAllBodies()Permet de simuler toutes les intéractions des objets. -
main
public static void main(java.lang.String[] args)Méthode principale.- Parameters:
args
- Arguments passés dans le terminal
-