Descriptions et exemples pour le POV-Ray raytracer par Friedrich A. Lohmüller
Transformations géométriques avec POV-Ray -
English English English
Italiano Italiano
Deutsch Deutsch

Page d'Accueil
- POV-Ray Tutoriel
  Transformations
  géométriques
   - Index

    Transformations
    élémentaires
    - "translate<  ... >"
    - "rotate<  ... >"
    - "scale<  ... >"
    - Réflexion

    Autres
    Transformations
    - "matrix<  ... >"
    - Cisaillement
    - transforms.inc

    - "transform{ ...}"
       et "inverse"

    Vecteurs et
    Transformations

    Insert Menu Add-on
      & téléchargement
 
                                           
"transform{ ... }" = Transformations en paquet
"transform{ ... invers }" = Transformations inversées

C'est possible avec cette commande de grouper des transformations tels que "scale", "rotate", "translate" et /ou "matrix", dans toute sorte de séquence en un seul mot pour toutes ces transformations. La syntaxe de pov dans ce cas est .

Syntaxe :
 #declare Mon_Transformation
 = transform{ Séquence libre de transformations}
  (Transformations ici: translate, rotate, scale, ou matrix.)
On l'utilise ainsi :
 object{ Mon_Objet transform Mon_Transformation }
  //ou avec
 object{ Mon_Objet transform {Mon_Transformation} }
  (avec ou sans les parentesi intérieures !)
et la transformation inversée:
 object{ Mon_Objet transform {Mon_Transformation inverse} } 
  (Bisogni all'interno delle parentesi intérieures !)

Voici un exemple :
Sample canoes
Un objet appelé "Canoe" ainsi que son »trou« approprié à la surface de l'eau "Canoe_outside" doit être placé dans 3 différentes positions, de tailles différentes / positions / orientations:
Pour ceci, définir en premier les transformations, qui mènent aux positions souhaitées :
//------------------------------------- Positions:
#declare Canoe_Position1
  = transform { rotate< 0,30,0> translate<0.0,0,1>}
#declare Canoe_Position2
  = transform { rotate<-6,20,0> translate<1.5,0,5>}
#declare Canoe_Position3
  = transform { rotate< 5, 0,0> scale 0.55
                          translate<-0.3,0,-2.00>}
//-------------------------------------------------
Ici nous avons les canoes :

//---------------------- Canoes at their positions:
object{ Canoe transform Canoe_Position1}
object{ Canoe transform Canoe_Position2}
object{ Canoe transform Canoe_Position3}
//-------------------------------------------------
et ici dans l'eau, les trous appropriés :
//-------------------------------------------------
difference{
plane{<0,1,0>, 0 }
object{Canoe_outside transform Canoe_Position1 }
object{Canoe_outside transform Canoe_Position2 }
object{Canoe_outside transform Canoe_Position3 }
   texture{Polished_Chrome
                    normal {crackle 1 scale 5
                            turbulence 1
                            translate<0,0,5>}
                    finish {ambient 0.15 diffuse 0.45
                            reflection 0.40}}
          }// end of difference
//----------------------------------------------- end

translate | rotate | scale | matrix | cisaillement | transforms.inc | transform | transformations de vecteurs
top

© Friedrich A. Lohmüller, 2013
www.f-lohmueller.de