halos
Class Cristal

java.lang.Object
  extended by halos.Cristal

public class Cristal
extends java.lang.Object

classe Cristal classe modélisant un Cristal de glace


Field Summary
protected  Forme3D[] faces
           
protected  double n_air
           
protected  double n_cristal
           
protected  int nombre_max_reflexions
           
protected  double phi
           
protected  double psi
           
protected  double rayon
           
protected  double theta
           
 
Constructor Summary
Cristal()
          constructeur Cristal construit un objet cristal sans initialisation
Cristal(int type, double param_forme, double indice_optique)
          constructeur Cristal construit un cristal de type : (1) hexagonal
 
Method Summary
 void affiche()
           
 java.awt.Graphics draw(java.awt.Graphics g, double facteur)
          methode draw retourne l'objet graphique passé en argument après ajout de la représentation du cristal
 Forme3D get_face(int i)
          methode get_face retourne la face demandée du cristal
 int get_nombre_faces()
          methode get_nombre_faces retourne le nombre de faces du cristal
 double get_rayon()
          methode get_rayon retourne le rayon de la sphère circonscrite au cristal
 void oriente(Angles3 a)
          methode oriente tourne le cristal selon les angles theta, phi, psi indiqué
protected  void rotated_x(double angle)
          methode rotated_x tourne le cristal autour de l'axe x
protected  void rotated_y(double angle)
          methode rotated_y tourne le cristal autour de l'axe y
protected  void rotated_z(double angle)
          methode rotated_z tourne le cristal autour de l'axe z
 void set_indice(double n)
          methode set_indice permet de modifier l'indice optique du cristal
 void set_reference()
          methode set_reference réinitialise les angles à 0
 double signe(double x)
          methode signe retourne le signe de la variable
 void tourne(double dtheta, double dphi, double dpsi)
          methode tourne tourne le cristal des angles theta, phi, psi indiqué par rapport à sa position précédente
 Point[] trajectoire(Rayon r, double angle, int nb_reflexions)
          methode trajectoire retourne une liste de points représentant la trajctoire du rayon lumineux dans le cristal
 Vecteur vecteur_sortie(Rayon r, double angle, int nb_reflexions)
          methode vecteur_sortie retourne le vecteur de sortie du rayon lumineux après interaction avec le cristal
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

theta

protected double theta

phi

protected double phi

psi

protected double psi

faces

protected Forme3D[] faces

rayon

protected double rayon

n_cristal

protected double n_cristal

n_air

protected double n_air

nombre_max_reflexions

protected int nombre_max_reflexions
Constructor Detail

Cristal

public Cristal()
constructeur Cristal construit un objet cristal sans initialisation


Cristal

public Cristal(int type,
               double param_forme,
               double indice_optique)
constructeur Cristal construit un cristal de type : (1) hexagonal

Parameters:
type - le type du cristal (1=hexagonal, 4=sphérique, 5=bipyramidal)
param_forme - le paramètre de forme
indice_optique - l'indice optique du cristal
Method Detail

get_rayon

public double get_rayon()
methode get_rayon retourne le rayon de la sphère circonscrite au cristal

Returns:
le rayon de la sphère circonscrite au cristal

get_face

public Forme3D get_face(int i)
methode get_face retourne la face demandée du cristal

Parameters:
i - le numéro de face
Returns:
la i-ème face

get_nombre_faces

public int get_nombre_faces()
methode get_nombre_faces retourne le nombre de faces du cristal

Returns:
le nombre de faces du cristal

set_indice

public void set_indice(double n)
methode set_indice permet de modifier l'indice optique du cristal

Parameters:
n - l'indice optique du cristal

rotated_x

protected void rotated_x(double angle)
methode rotated_x tourne le cristal autour de l'axe x

Parameters:
angle - l'angle de rotation

rotated_y

protected void rotated_y(double angle)
methode rotated_y tourne le cristal autour de l'axe y

Parameters:
angle - l'angle de rotation

rotated_z

protected void rotated_z(double angle)
methode rotated_z tourne le cristal autour de l'axe z

Parameters:
angle - l'angle de rotation

oriente

public void oriente(Angles3 a)
methode oriente tourne le cristal selon les angles theta, phi, psi indiqué

Parameters:
a - l'objet Angles3 contenant les 3 angles

tourne

public void tourne(double dtheta,
                   double dphi,
                   double dpsi)
methode tourne tourne le cristal des angles theta, phi, psi indiqué par rapport à sa position précédente

Parameters:
dtheta - l'angle theta
dphi - l'angle phi
dpsi - l'angle psi

set_reference

public void set_reference()
methode set_reference réinitialise les angles à 0


vecteur_sortie

public Vecteur vecteur_sortie(Rayon r,
                              double angle,
                              int nb_reflexions)
methode vecteur_sortie retourne le vecteur de sortie du rayon lumineux après interaction avec le cristal

Parameters:
r - le rayon lumineux
angle - l'angle d'incidence du rayon lumineux par rapport au cristal
nb_reflexions - le nombre de reflexions internes imposées
Returns:
le vecteur de sortie du rayon lumineux après interaction avec le cristal

trajectoire

public Point[] trajectoire(Rayon r,
                           double angle,
                           int nb_reflexions)
methode trajectoire retourne une liste de points représentant la trajctoire du rayon lumineux dans le cristal

Parameters:
r - le rayon lumineux
angle - l'angle d'incidence du rayon lumineux par rapport au cristal
nb_reflexions - le nombre de reflexions internes imposées
Returns:
une liste de points représenatnt la trajctoire du rayon lumineux dans le cristal

affiche

public void affiche()

signe

public double signe(double x)
methode signe retourne le signe de la variable

Parameters:
x - la variable a tester
Returns:
le signe de la variable

draw

public java.awt.Graphics draw(java.awt.Graphics g,
                              double facteur)
methode draw retourne l'objet graphique passé en argument après ajout de la représentation du cristal

Parameters:
g - l'objet graphique
facteur - le facteur de grandissement à appliquer
Returns:
l'objet graphique après ajout de la représentation du cristal