Ciao a tutti e benvenuti in questa terza parte del corso di sviluppo di giochi 2D
Nella parte precedente del corso abbiamo visto come sommare due vettori e le sue applicazioni nel mondo della creazione di giochi 2D.
Oggi vedremo come eseguire l’operazione inversa: Sottrarre un vettore da un altro vettore.
Ma prima di parlare del metodo, parliamo dell’intuizione dietro a questa operazione matematica.
A cosa serve la sottrazione tra vettori?
Se ricordate dalla lezione precedente, sommare due vettori v1, v2 significa: posizionare la fine di v1 sulla punta di v2 o viceversa.
Beh la sottrazione funziona esattamente in questo modo. La differenza sta nel fatto che uno dei due vettori sarà invertito. (-v1 o –v2)
Vediamo con un esempio pratico.
Abbiamo detto che per eseguire una sottrazione tra vettori, dobbiamo invertire uno dei due vettori (In questo caso v1). Invertire un vettore significa semplicemente invertire la sua direzione, o in termini più matematici, significa moltiplicare il vettore per il valore -1
Ora possiamo eseguire una normale addizione come quella eseguita nella seconda parte del corso.
Se ricordate, dobbiamo posizionare la fine di un vettore sulla punta dell’altro. Il vettore risultante sarà la loro addizione.
Il vettore risultante (in blu) rappresenta la sottrazione v2 – v1
Cosa significa sottrarre due vettori
Ora che avete visto la sottrazione tra vettori forse vi state chiedendo: Cosa mi rappresenta questo vettore in blu? La risposta è abbastanza semplice. Il vettore risultante alla sottrazione v2 – v1 rappresenta esattamente il vettore che punta da v1 a v2. Se ci pensate bene, questo concetto ha senso perché è simile alla sottrazione tra numeri. Infatti se sottraiamo 8 da 10 il risultato è 2, ovvero il numero che posizionato su 8 da 10. (scusate la confusione)
Come potete vedere il vettore in blu non punta direttamente a v2, ma è spostato più in basso. Ma se notate, il vettore blu sembra avere la giusta direzione e magnitudine ma con l’origine sbagliata. Fortunatamente possiamo cambiare l’origine del vettore senza problemi dato che i vettori in per sé non hanno un’origine definita, ma sono definiti solamente da direzione e magnitudine. Ovvero due vettori con la stessa magnitudine e direzione, sono in tutti gli effetti lo stesso vettore.
Se spostiamo l’origine del vettore blu otteniamo il vettore desiderato che punta da v1 a v2.
Il concetto di sottrazione tra vettori è utilissimo nella programmazione di giochi 2D e 3D. Per esempio possiamo effettuare una simulazione di un magnete che attrae un oggetto metallico. Per ottenere la forza dell’attrazione magnetica, possiamo sottrarre il vettore dell’oggetto al vettore del magnete. Possiamo poi applicare questa forza all’oggetto per spostarlo verso il magnete.