Matrici & Matrici

Proveniente da altro thread. Sposto in nuovo argomento per chiarezza di chi cerca/legge.

Gente, nel link Essential Mathematics for Computational Design [McNeel Wiki] che ha pubblicato sempre il prezioso Emilio, c’è tutto per gestire le matrici con GH.
Riporto qualche passaggio per agevolare future ricerche in modo rapido.

Costruire una matrice:

Si parte sempre dalla matrice identità, ovvero quello che in matematica si chiama elemento neutro del prodotto, ovvero 1 (per la somma l’elemento neutro è 0). Come vedete, se non si specificano valori in input V del componente Matrix il risultato è la geometria di partenza:

Il prodotto scalare tra la matrice della geometria (matrice X) e la matrice di trasformazione M può essere effettuato equivalentemente con

image

oppure con

image

e il risultato non cambia:

Si noti che il punto è descritto da una matrice 3x1 e quindi il prodotto scalare non potrebbe essere effettuato con una matrice 4x4. E’ evidente che in base alla geometria la matrice di trasformazione deve essere ridotta ad una matrice 1x3 e questo perché ovviamente non ha senso effettuare la scala di un punto.

Traslare un oggetto usando un vettore spostamento con punto di applicazione coincidente con l’origine degli assi:

Una rotazione rigida attorno a z:

La scala:

Faccio notare come la presenza della geometria non implica interferenze con la corretta visualizzazione della matrice di trasformazione poiché questa prescinde dalla geometria:

L’operazione di riflessione:

Proiezione:

ed infine una serie di trasformazioni e soltanto dopo avere ottenuto la matrice di trasformazione complessiva (con il comando C#) si applica la geometria.

Oggi però è utilizzabile il comando Compound per effettuare il prodotto tra le matrici con il medesimo effetto, provato adesso:

e pare funzionare anche invertendo l’ordine di esecuzione dei prodotti.

:+1: