Descrizioni ed esempi per POV-Ray di Friedrich A. Lohmüller
Trasformazioni Geometriche con POV-Ray -
English English English
Français français
Deutsch Deutsch

Home
- POV-Ray Tutorial
  Trasformazioni
  Geometriche
   - Indice

    Trasformazioni
    di Base
    - "translate<  ... >"
    - "rotate<  ... >"
    - "scale<  ... >"
    - Immagine speculare

    Altre
    Trasformazioni
    - "matrix<  ... >"
    - scorrimento elastico
    - transforms.inc

    - "transform{ ...}"
       e "inverse"

    Vettori e
    Trasformazioni
    - vrotate
    - vaxis_rotate
    - vtransform
    - vinv_transform
    - vturbulence
    - vnormalize
    - vcross
    - vdot()
    - vlength()
    - VAngle(), VAngleD()
    - VProject_Axis

    Insert Menu Add-on
      & download
 
                                           
Vettori e Trasformazioni
Trasformazioni per vettori et altre cose con vettori in POV-Ray:

vrotate( V, <Rotate.x, Rotate.y, Rotate.z>)
Rotazione di un vettore V intorni al centro <0,0,0>
con un vettore di rotazione <Rotate_X, Rotate_Y, Rotate_Z>.
vrotate( < 2.5, 1, 0>,
          < 0, 90, 0> ) 
vrotate example

vaxis_rotate( V1, V2, A)
Rotazione del vettore V1 intorno al vettore V2 con A gradi
Rotazione di un vettore intorn un altro vettore come asse di rotazione.
vaxis_rotate(< 0, 1, 0.5>,
             < 2, 3,   0>,
                       70 ) 
vaxis_rotate example

vtransform ( V, Transformation )
vinv_transform( V , Transformation )

Bisogni: #include "transform.inc"
Combinare trasformazioni come translate, scale, rotate e matrix.
vtransform() applica una trasformazione di un punto.
vinv_transform() fa la trasformazione inversa ('undo').
#declare A = < 1.5, 0.3, 0.25 >;
#declare Trans1 =
   transform{ rotate<0,-50,0>
              translate<0,0.7,0> };
#declare B = vtransform ( A, Trans1 );
vtransform example

vturbulence(Lambda, Omega, Octaves, V)
Rende il vettore di turbolenza per il punto V sulla base dei valori indicati turbolenza. (Per Lambda, Omega, Octaves: POV-Ray Wiki.
L'ampiezza di turbolenza può essere controllata moltiplicando il vettore turbolenza. La frequenza a cui il vettore de la turbolenza si modifiche può essere controllato moltiplicando V.
Possiamo ottenere una versione turbulated del vettore V con :
#declare V_Turb =
    V + Ampl*vturbulence(2, 0.5, 6, V*Freq);
vturbulence example
Example vturbulence.txt

vnormalize( V )
Il vettore A normalizzato, un vettore della lunghezza di una unità nella direzione di A.
Formula: vnormalize(A)= A / vlength(A).
Attenzione:Utilizzando vnormalize(<0,0,0>) si tradurrà in un errore.
#if( vlength(V) != 0 )// if is not <0,0,0>
  #declare Vo = vnormalize( V );
#end
vnormalize example

vcross( V1, V2)
Prodotto vettoriale di A e B (' A x B '),
Un vettore perpendicolare ai due vettori originali e con la lunghezza uguale alla superficie del parallelogramma definito da loro. Formula:
AxB = |A|*|B|*sin(angle(A,B))*perpendicular_unit_vector(A,B)
La lunghezza del vettore di prodotto vettoriale è proporzionale al seno dell'angolo tra A e B.
#declare YellowVector =
            vcross( BlueVextor, GreenVector);
vcross example

vdot( V1, V2)
Prodotto scalare di V1 e V2. ('dot product', 'scalar product'). È direttamente proporzionale alla lunghezza dei vettori V1 e V2 e il coseno dell'angolo tra V1 e V2.
Se VDOT (A, B) = 0, allora VAngleD (A, B) = 90 gradi.
Formula: vdot=V1.x*V2.x + V1.y*V2.y + V1.z*V2.z.
#declare Vyellow =
 Vright*vdot(Vleft,Vright)/vdot(Vright,Vright);
vdot example

vlength( V )
La lunghezza di V come un valore float.
Formula: length=sqrt(vdot(A,A)).
#declare Distance_AB = vlength( B-A );
vlength example

VAngle( V1, V2 )
VAngleD( V1, V2 )

Bisogni: #include "math.inc"
Questi ritorno l'angolo tra il vettore V1 e V2.
Vangle() ritorno con l'angolo in radianti, VAngleD() in gradi.
VAngle example

VProject_Axis(V, Axis)
Bisogni: #include "math.inc"
Proiezione di un vettore V sul un asse Axis.
Formula: Axis*vdot(V, Axis)/vdot(Axis, Axis).
#declare YellowV =
      VProject_Axis( BlueV, GreenV);
VProject_Axis example

Per queste trasformazioni si può usare dei modelli di testo della sezione "Shearing & transform" del mio "Insert Menu Add-on".

translate | rotate | scale | matrix | scorrimento elastico | transforms.inc | transform | trasformazioni di vettori
top

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