NOTA! Questo sito utilizza i cookie e tecnologie simili.

Se non si modificano le impostazioni del browser, l'utente accetta. Per saperne di piu'

Approvo

Capitolo 37: Le classi matematiche in Java e in Java 3D.

 

MATH

La classe Math di Java è definita in 'java.lang.Math'.

 

Si tratta di uno dei package di base di Java, che dovrebbe essere noto alla maggior parte dei lettori; ecco comunque, di seguito, una lista di alcuni dei metodi più interessanti messi a disposizione da Math:

 

  • abs, che prende in input un valore numerico (long, int, float o double) e ne restituisce il valore assoluto (a seconda dei casi, sotto forma di long, int, float o double);

  • sin, che prende in input un double e restituisce, sotto forma di double, il seno del valore passato in input;

  • cos, che prende in input un double e restituisce, sotto forma di double, il coseno del valore passato in input;

  • tan, che prende in input un double e restituisce, sotto forma di double, la tangente del valore passato in input;

  • asin, che prende in input un double e restituisce, sotto forma di double, l'arcoseno del valore passato in input;

  • acos, che prende in input un double e restituisce, sotto forma di double, l'arcocoseno del valore passato in input;

  • atan, che prende in input un double e restituisce, sotto forma di double, l'arcotangente del valore passato in input;

  • ceil, che implementa la funzione 'ceiling', prendendo in input e restituendo in output un double;

  • floor, che implementa la funzione 'floor', prendendo in input e restituendo in output un double;

  • pow, che prende in input due double e che restituisce, in output, un double, rappresentante il valore del primo argomento elevato al valore definito dal secondo argomento;

  • round, che prende in input un double o un float e restituisce, sotto forma di int o di long, il valore che approssima meglio l'input;

  • sqrt, che restituisce, sotto forma di valore double, la radice quadrata di un valore double passato come parametro in input;

  • toDegrees, che prende in input un double rappresentante un angolo espresso in radianti e che restituisce, in output, un double rappresentante il valore dell'angolo espresso in gradi;

  • toRadians, che prende in input un double rappresentante un angolo espresso in gradi e che restituisce, in output, un double rappresentante il valore dell'angolo espresso in radianti.

I campi sono invece E, che identifica (con un double) la base dei logaritmi naturali, e PI, il valore (espresso anch'esso con un double) che meglio approssima π.

 

 

VECMATH

Il package VECMATH di Java 3D mette a disposizione diverse classi per gestire punti, colori, vettori, matrici e coordinate delle texture.

I nomi delle classi sono espressi, in generale, nella forma:

[oggetto] [quantit`a di elementi] [formato dati];

ad esempio, abbiamo:

 

  • Point3d, Point3f, che servono a definire punti (una posizione nello spazio 3D) con 3 double (d) o float (f);

  • Color3b, Color3f, Color4b, Color4f, che servono a definire i colori, con 3 o 4 valori (il quarto per il canale alpha) di tipo byte (b) o float (f);

  • Vector3d, Vector3f, per i vettori;

  • TexCoord3f, per le texture, come vedremo in seguito.

 

POINT*

Gli oggetti creati con le classi della famiglia Point* servono ad identificare un punto nella scena 3D, dunque possono servire per individuare, ad esempio, le coordinate di un vertice, di una sorgente luminosa, di una sorgente sonora, ecc..

 

COLOR*

Gli oggetti creati con le classi della famiglia Color* rappresentano, invece, un colore, ad esempio per colorare un vertice o la nebbia.

E' possibile creare colori con valori alpha (trasparenza), utilizzando le classi Color4*.

 

VECTOR*

Le classi Vector* servono ad identificare vettori, utili per descrivere, ad esempio, le normali, una trasformazione di traslazione, la direzione di un fascio luminoso, la direzione di un'onda sonora, ecc..

 

TEXCOORD*

Le classi TexCoord* gestiscono la mappatura di una texture su un insieme di vertici.

Verranno prese in esame nella sezione dedicata alla resa visiva degli oggetti, per il momento basti sapere che tali coordinate possono essere espresse con 2 o 3 valori float, definendo le classi TexCoord2f e TexCoord3f.

 

 
Vai all'inizio della pagina