globale = rotazione_giunto * traslazione_giunto;
return (globale * giunto_precedente.Global);
}
else
{
globale = rotazione_giunto * traslazione_giunto;
return globale;
}
}
set{ globale = value; }
}
Attraverso le moltiplicazioni tra matrici, riusciamo ad individuare il giunto nel
“mondo”. Tramite la classe Giunti.cs muoverlo è molto semplice perchè avendo
a disposizione la traslazione_giunto che identifica il giunto nello spazio, basta
moltiplicare questa variabile per la variabile rotazione_giunto che identifica lo
spostamento angolare. Sia per effettuare il posizionamento del giunto, sia per
compiere rotazioni, vengono effettuate moltiplicazioni tra matrici.
Per visualizzare l'insieme dei giunti e quindi il nostro modello grafico,
utilizziamo i pixel/vertex shader
che ci permettono una rappresentazione
ottimale del modello.
Il codice di collegamento con il file .fx è molto semplice:
foreach (Giunto g in giunti)
{
foreach (Effect currenteffect in g.Mesh.Effects)
{
currenteffect.CurrentTechnique=currenteffect.Techniques["Viper"];
101