I quaternioni e la rotazione in 3D con Python

I quaternioni di Hamilton e la rotazione in 3D con Python

Con gli angoli di Eulero si sono fondate le basi per il calcolo della rotazione di corpi in spazi tridimensionali. Successivamente si è scoperto però che i quaternioni di Hamilton risultano uno strumento più efficiente per lo studio del modo di rotazione dei corpi. In questo articolo vedremo cosa sono i quaternioni, come si calcolano e come si applicano alla rotazione di un corpo, aiutandoci anche in questo caso con del codice Python.

Le rotazioni in 3D e gli Angoli di Eulero con Python

Le rotazioni in 3D e gli angoli di Eulero in Python

Le realtà virtuali con cui spesso giochiamo sui nostri PC sono basate su motori 3D, cioè sistemi in grado di effettuare calcoli che simulino lo spostamento e la rotazione di oggetti in un sistema tridimensionale. Anche in robotica, in particolare con i bracci robotici, si fa uso di sistemi in grado di calcolare un determinato movimento, stabilendo di quanto dovranno ruotare i singoli motori che li compongono. Tutti questi sistemi si basano su calcoli e concetti matematici in grado di calcolare ogni singolo movimento nello spazio tridimensionale, di cui gran parte furono sviluppati dal famoso matematico Eulero (1707-1784). In questo articolo vedremo cosa sono gli angoli di Eulero, come si calcolano e come si può calcolare il moto di rotazione di un corpo rigido nello spazio euclideo a tre dimensioni. Il tutto con prove pratiche passo passo sviluppate in Python.

Cosa è if __name__ __main__ e perchè si usa

Cosa è if __name__ == “__main__” e perché si usa

Per chi programma in Python, potrà vedere all’interno di molti codici, soprattutto nella parte finale, il seguente costrutto if __name__ == “__main__”: seguito poi da una serie di istruzioni racchiuse nell’indentazione. A cosa serve? Perchè è tanto comune?

Thread in Python - Lock and Deadlock (part 4)

Thread in Python – Lock e Deadlock (parte 4)

In questo articolo continueremo il discorso del Multithreading, introducendo un altro importantissimo strumento: i Lock. Grazie ad essi, si può gestire in maniera più efficiente la sincronizzazione tra i vari thread. Inoltre parleremo di un’altra problematica comune nel mondo dei thread: i deadlock.

Thread in Python - Multithreading (part 3)

Thread in Python – Multithreading (parte 3)

n questa terza parte della serie Thread in Python, vedremo alcuni aspetti del multithreading. Nella realtà infatti i thread possono essere molto diversi tra di loro e spesso i metodi di ricorsione per crearli e gestirli, come i loop for, non possono essere più utilizzabili. Esistono quindi degli strumenti che permettono di gestire diversi thread come ThreadPoolExecutor. La gestione dei thread rimane comunque un’operazione complessa che se non ben gestita può portare a problematiche come la Race Condition. In questo articolo vedremo in dettaglio questi due aspetti.

Thread in Python - Threading (part 1)

Thread in Python – Threading (parte 1)

Una volta superata la prima fase di apprendimento di un linguaggio di programmazione, come Python, si sono acquisite tutte le basi necessarie per lo sviluppo di un qualsiasi programma. Ma passando allo sviluppo di programmi più complessi e contribuendo a diversi progetti, spesso insieme ad altri sviluppatori, si dovranno imparare moltissime altre nozioni, come per esempio i Thread ed il concetto di Threading.