Vous êtes ici : Accueil > Sciences > Chimie > Eau > Un grain de sel
Publié : 21 novembre 2007
Format PDF Enregistrer au format PDF

Un grain de sel

Cette image fait partie d’une série d’explications que je donne sur la solvatation : les mécanismes de dissolution.

Voici le code POVRAY et le fichier image d’un tout petit cristal de NaCl. Pas de prétention à l’exactitude scientifique mais une belle illustration pour le cours de chimie.

PNG - 88.8 ko
PNG - 99.2 ko
// Persistence Of Vision raytracer version 3.6
// File by Yves Delhaye (Yves AT YvesDelhaye.be)
// Cristal of NaCl
//
// -w320 -h240
// best seen with
// -w800 -h600 +a0.3

global_settings { assumed_gamma 2.2 }
 #declare Num_cell=8;
 #declare Lg_arete=1;

camera {
 location  <0, 15*Num_cell, -15*Num_cell>
 look_at   <0, 0, 0>
 angle 58
}

light_source { <-20, 30, -25> color red 0.6 green 0.6 blue 0.6 }
light_source { < 20, 30, -25> color red 0.6 green 0.6 blue 0.6 }

#macro Na_ion (Na_X, Na_Y, Na_Z)
union{
        sphere { <Na_X, Na_Y, Na_Z>, 1}
        pigment { color red 1 green 0 blue 0 }
        finish { ambient 0.2 diffuse 0.8 phong 1 }
}
#end

#macro Cl_ion (Na_X, Na_Y, Na_Z)
union{
        sphere { <Na_X, Na_Y, Na_Z>, 2}
        pigment { color red 0 green 1 blue 0 }
        finish { ambient 0.2 diffuse 0.8 phong 1 }
}
#end

#macro NaCl_ElemCell (lg_arete, X_ElemCell, Y_ElemCell, Z_ElemCell)

union{
//Na
 Na_ion (2*lg_arete, 2*lg_arete, 2*lg_arete)
 Na_ion (-2*lg_arete, -2*lg_arete, 2*lg_arete)
 Na_ion (2*lg_arete, -2*lg_arete, -2*lg_arete)
 Na_ion (-2*lg_arete, 2*lg_arete, -2*lg_arete)
//Cl
 Cl_ion (2*lg_arete, -2*lg_arete, 2*lg_arete)
 Cl_ion (-2*lg_arete, 2*lg_arete, 2*lg_arete)
 Cl_ion (2*lg_arete, 2*lg_arete, -2*lg_arete)
 Cl_ion (-2*lg_arete, -2*lg_arete, -2*lg_arete)


 translate <X_ElemCell*8*lg_arete, Y_ElemCell*8*lg_arete, Z_ElemCell*8*lg_arete >
}

#end

//NaCl_ElemCell(1,0,0,0)
   
//
union{
 #declare Cell_Step=Num_cell/2;

 #declare I=-Cell_Step;
 #while (I <  Cell_Step)
     #declare J=-Cell_Step;
    #while (J <  Cell_Step)
         #declare K=-Cell_Step;
        #while (K < Cell_Step )  
           NaCl_ElemCell(Lg_arete,I,J,K)
         #declare K=K+1;    
        #end
     #declare J=J+1;    
    #end
  #declare I=I+1;    
 #end

rotate <0, 30, 5>
}

portfolio

Documents joints