Bonjour,
Je bosse actuellement sur un projet en Java pour ma 3ème année de licence informatique qui est la création d'une "Simulation de Gravité". J'ai donc crée 3 objets physiques pour le tester. Un Rond, un Rectangle et un Triangle Rectangle qui héritent tout trois d'une classe abstraite Physique et qui redéfinissent différentes fonctions. Ces objets dans mon programme sont stockés dans une ArrayList<Physique>
J'ai réussi à gérer la création d'un objet à une certaine position lors d'un clic de souris, sélectionner, supprimer, modifier la taille de ces objets, bref, je me suis bien amusé sur ceux ci, mais j'arrive à un point ou je dois avancer dans les collisions. Je suis une vraie bille en physique, et je ne sais pas du tout comment m'y prendre.
J'ai besoin de pistes pour :
- détecter une collision entre les divers objets modélisés (Rond, Rectangle et Triangle, et bien sûr les bords de ma fenêtre, mais pour cela c'est assez simple)
- appliquer une force à chaque objet qui entre en collision
- appliquer un moment à chaque objet qui entre en collision
J'ai une fonction union qui détecte si un point précis de coordonnées x et y se trouve dans l'objet, dont voici le code
Pour un rectangle :
Pour un rond :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 public boolean union(int x, int y) { return (x >= this.x && x <= this.x + l && y >= this.y && y <= this.y + h); }
Pour un triangle rectangle :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 public boolean union(int x, int y) { return Math.sqrt(Math.pow(x - this.x - 20, 2) + Math.pow(y - this.y - 20, 2)) < r; }
Merci par avance pour votre aide. Je ne vous demande pas bien sûr de faire le travail à ma place, mais si vous avez quelques pistes de réflexion, je suis preneur !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 public boolean union(int x, int y) { return (x >= this.x && x <= this.x + c && y >= this.y && y <= this.y + c && this.x - x >= this.y - y); }
Partager