giunti[5].Mesh = myModel.Meshes[7];
giunti[5].Giunto_Precedente = giunti[4];
giunti.Add(new Giunto(6, new Vector3(0, 695, 360),
new Vector3(1, 0, 0), -90, 90, new Vector3(1,
0.5f, 1)));
giunti[6].Mesh = myModel.Meshes[8];
giunti[6].Giunto_Precedente = giunti[5];
Come è possibile evincere dal codice scritto sopra, creiamo una lista di giunti
che è di tipo Giunti per renderci più semplice la memorizzazione dei link. Ogni
elemento della lista ha traccia della propria posizione attraverso le matrici di DH ed ha anche conoscenza del giunto precedente che è fondamentale per
eventuali rotazioni (catena cinematica).
Di seguito vedremo un frammento della classe Giunti.cs in particolare la parte
riguardante la memorizzazione della matrice del mondo e vedremo come viene
effettuata una rotazione di un giunto partendo dalla posizione attuale.
///
///get : ritorna la matrice globale relativa al giunto
///set: setta il valore che viene passato
///
public Matrix Global
{
get
{
if (giunto_precedente != null)
{
traslazione_giunto=Matrix.CreateTranslation(posizione_giunto)*giu
nto_precedente.Inv_Traslazione;
100