Tracer la fonction 3D et les points en Java [fermé]


Tout ce dont j'ai besoin est un tracé de fonction en 3D avec quelques points sur la surface. Comment puis-je l'atteindre?

Au début, j'ai essayé jzy3d mais il s'est avéré que c'est trop d'efforts pour une tâche aussi basique (en particulier parce que jzy3d manque d'exemples de code et que les dépendances avec JOGL peuvent être lourdes). Alors j'ai essayé Parcelle de Surface Java et pour la partie de surface de fonction-c'est parfait. Mais est-il possible d'ajouter des points (x, y, z)..? Je ne pense pas. Dans ce cas quelle autre bibliothèque pourrais-je utiliser?

Je sais que cette question peut sembler hors sujet, mais un tracé aussi simple est une fonctionnalité de baseet cette réponse a déjà 2 ans, donc.. peut-être qu'il y a quelque chose de mieux maintenant?

Author: Community, 2013-12-23

3 answers

Orson Charts est une nouvelle bibliothèque (propriétaire) qui dessinera des graphiques de surface sans dépendance JOGL (elle contient un moteur de rendu logiciel basé sur Java2D, donc il n'y a pas de dépendances sauf le runtime Java standard). Le rendu de surface prend des échantillons d'une fonction y = f (x, z), il peut donc y avoir un problème avec votre exigence où vous dites:

Mais est-il possible d'ajouter des points (x, y, z)..?

Cependant, il ne serait pas difficile d'adapter le code à travaillez avec de telles données, donc si Orson Charts ressemble à quelque chose que vous pourriez utiliser, veuillez me contacter.

 3
Author: David Gilbert, 2014-01-07 12:47:05

Je suis assez nouveau dans stackoverflow, alors peut-être que j'apporte une nouvelle vue (ou peut-être ancienne) dans cela.

Vous pouvez transformer vos points 3D en Points 2D, je vais lui soumettre un extrait de code d'une manière (mais il y en a beaucoup)

//point a (3D)
double ax = 3;
double ay = 4;
double az = 3;

//point b (2D)
double bx = 0;
double by = 0;

//assumtions
double cx = 0; //offset
double cz = 0; //offset

double scalex = 0.5;
double scalez = 0.5;

//trafo 3D -> 2D
bx = scalex * ax + cz;
by = scalez * az + cz;

Je fais référence à http://en.wikipedia.org/wiki/3D_projection

Faites ceci avec TOUS vos points et vous verrez le graphique tracé.

 2
Author: Martin Frank, 2014-07-15 03:18:00

Il existe des exemples Jzy3d sur Github montrant comment dessiner des diagrammes de surface et de dispersion.

Vous verrez que la configuration maven est assez simple car vous devez simplement déclarer une dépendance à jzy3d (JOGL étant importé transitivement):

<dependencies>
    <dependency>
        <groupId>org.jzy3d</groupId>
        <artifactId>jzy3d-api</artifactId>
        <version>0.9.2-SNAPSHOT</version>
    </dependency>
</dependencies>

Il vous suffit de déclarer le référentiel Jzy3d comme suit

<repositories>
  <repository>
     <id>jzy3d-snapshots</id>
     <name>Jzy3d Snapshots</name>
     <url>http://maven.jzy3d.org/snapshots</url>
  </repository>
  <repository>
     <id>jzy3d-releases</id>
     <name>Jzy3d Releases</name>
     <url>http://maven.jzy3d.org/releases</url>
  </repository>

Si l'exemple donné ne suffit pas, vous pouvez également consulter le guide du développeur .

 1
Author: Martin, 2014-09-04 15:44:04