Y a-t-il et l'équivalent de la classe de points mais pour les points 3D?


Je voudrais stocker les co-ords x y et z pour certains objets pour un jeu mais je ne trouve pas de classe intégrée comme Point. Existe-t-il une belle classe standard que je pourrais ajouter et utiliser qui gérerait la distance entre les points/roulements d'un objet à un autre, etc.?

Author: SimpleSi, 2011-04-22

3 answers

Ayant récemment fait du mappage vectoriel (y compris z / 3D), et voyant votre balise Android, je recommande de rouler la vôtre.

Les raisons sont nombreuses:

  • Vous pouvez personnaliser pour répondre à vos contraintes de précision / mémoire / performances spécifiques.
  • Si multithread, vous pouvez rendre votre classe immuable et thread-safe
  • C'est-à-dire si la mémoire est contrainte, vous pouvez stocker les trois dimensions dans un int ou long
  • Si le processeur est contraint, vous pouvez utiliser un ancien séparé nombres
  • Si GC / Garbage contraint, vous pouvez recycler et mettre en commun des instances (mutables)

En fin de compte, la plupart de ces primitives sont assez simples à écrire, tester, etc. Les principales méthodes que vous devrez écrire (au-delà du constructeur standard/get/set/...) - Distance - Produit scalaire - Unitize (faire la longueur = = 1 pour diverses opérations mathématiques) - Et j'ai utilisé DistanceSquared dans le passé pour les fonctions de comparaison... Cela supprime l'opérateur sqrt de la plupart des méthodes de distance, tout en calculant un distance relative assez utile pour comparer les distances de points, etc.

 4
Author: Noah, 2011-04-22 22:37:31

Peut-être que Point3D est ce dont vous avez besoin.

 3
Author: duffymo, 2011-04-22 19:49:36

Il existe également une classe JavaFX Point3D qui répond à vos besoins.

 1
Author: Maciej Piekarski, 2014-01-11 17:13:17