JeuWeb - Crée ton jeu par navigateur
Comment stocker la position d'objets célestes pour facilement trouver ceux proches ? - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : Comment stocker la position d'objets célestes pour facilement trouver ceux proches ? (/showthread.php?tid=5794)



Comment stocker la position d'objets célestes pour facilement trouver ceux proches ? - Sephi-Chan - 05-11-2011

Hello,

Pour un prochain projet, je réfléchis à la manière de stocker les positions d'objets célestes.

Plus concrètement, il s'agit de représenter sur un plan une planète (dont le centre symbolise l'origine du repère) et son secteur proche, puis d'y dessiner des vaisseaux.

[Image: planetsc.png]

Ici, la planète et représentée par le cercle bleu au centre et son secteur est le grand cercle cyan. Les points noirs représentent des vaisseaux et le point rouge le vaisseau actif.

Mon but est donc de pouvoir stocker la position des vaisseaux tout en me permettant de pouvoir facilement déterminer à tout moment quels objets se trouvent dans le rayon de tel autre objet.

Avez-vous des conseils pour coller à ces besoins ?


Merci bien ! Smile


RE: Comment stocker la position d'objets célestes pour facilement trouver ceux proches ? - php_addict - 05-11-2011

stockage en BDD MySql? as-tu pensez aux bases de données spatiales?

Mysql --> http://dev.mysql.com/doc/refman/5.0/fr/gis-introduction.html
PostgreSQL --> http://www.postgis.fr/

cela ne répond peut être pas à tes besoins...
++


RE: Comment stocker la position d'objets célestes pour facilement trouver ceux proches ? - Ter Rowan - 05-11-2011

vu que tu veux pouvoir comparer deux zones d'influences à la fois (le centre de la planète, le centre du vaisseau)

je dirais de rester en coordonnées cartésiennes (soit x,y, soit x,y,z si tu fais avec les trois dimensions)


dans ce cas tu as rapidement les vaisseaux qui sont dans la zone d'influence de l'un ou de l'autre :

pour vérifier qu'un vaisseau en x,y est dans la zone d'influence de toto (x0, y0) tu fais :


si (x-x0)^2 + (y-y0)^2 + (z-z0)^2 < (rayon d'influence)^2 alors vrai sinon faux