OVH Cloud OVH Cloud

[Java3D] Surface

2 réponses
Avatar
FireWave
Bonjour à tous,

Je patoge...... :(

J'ai une matrice que j'aimerai afficher en 3D...
- Colonnes en abscisse
- Lignes en ordonnée
- Valeur en hauteur

Cette matrice fait minimum 100*100...

Please, help me.. Avez vous des pistes ??
Je me suis tourné vers les QuadArray.
J'ai créé une classe Vertex qui me est en fait un carré.
Probleme, non seulement ça ne s'affiche pas.. mais en plus il me fait un
Out of Memory dès quand je suis avec 300*300 vertex...
Je mets mon code en dessous..

Merci de votre aide !

FireWave


////////////////////////////////////////////////////////////////////////
import javax.media.j3d.*;
import javax.vecmath.*;
import java.awt.Color;


public class Vertex extends Shape3D {
public Vertex(Point3f points[]) {
int nbPoints = 4;
QuadArray quad = new QuadArray(nbPoints, QuadArray.COORDINATES
| QuadArray.COLOR_3);
Color3f color = new Color3f(Color.red);
quad.setCoordinates(0, points);
this.setGeometry(quad);
quad.setColors(0, new Color3f[] { color, color, color, color });
}
}
////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////
import com.sun.j3d.utils.universe.*;
import javax.media.j3d.*;
import javax.vecmath.*;

public class Dessin {

public Dessin(int[][] matrice, int TAILLE)

{

SimpleUniverse universe = new SimpleUniverse();

BranchGroup group = new BranchGroup();

for (int i = 0; i < TAILLE - 1; i++)
for (int j = 0; j < TAILLE - 1; j++) {

Point3f p1 = new Point3f(i / TAILLE, j / TAILLE, matrice[i][j]);
Point3f p2 = new Point3f(i / TAILLE, j / TAILLE,
matrice[i + 1][j]);
Point3f p3 = new Point3f(i / TAILLE, j / TAILLE,
matrice[i + 1][j + 1]);
Point3f p4 = new Point3f(i / TAILLE, j / TAILLE,
matrice[i][j + 1]);

Vertex vert = new Vertex(new Point3f[] { p1, p2, p3, p4 });

group.addChild(vert);
}

universe.getViewingPlatform().setNominalViewingTransform();
universe.addBranchGraph(group);
}
}
////////////////////////////////////////////////////////////////////////

2 réponses

Avatar
FireWave
Problème résolu... bcp de bug un peu partout apparemment.

Bon, maintenant que j'ai ma surface, je l'ai mise de coté, mais il n'y a
aucun effet sur la couleur (que du rouge.. je pensais quand meme qu'il y
aurait un dégradé :(...

Faut-il ajouter une source lumineuse ?

Merci

FireWave
Avatar
Ploc
FireWave wrote:
Problème résolu... bcp de bug un peu partout apparemment.

Bon, maintenant que j'ai ma surface, je l'ai mise de coté, mais il n'y a
aucun effet sur la couleur (que du rouge.. je pensais quand meme qu'il y
aurait un dégradé :(...

Faut-il ajouter une source lumineuse ?


Oui bien sur, sans source lumineuse, les polygones sont rendus avec leur
couleur d'origine.