Informazioni sull'algoritmo dell'asse arbitrario (DXF)

L'algoritmo dell'asse arbitrario viene utilizzato all'interno di AutoCAD per implementare il processo di generazione, arbitrario ma al tempo stesso coerente, dei sistemi di coordinate oggetto per tutte le entità che utilizzano le coordinate oggetto.

Dato un vettore con lunghezza unitaria da utilizzare come asse Z di un sistema di coordinate, l'algoritmo dell'asse arbitrario genera un asse X corrispondente per il sistema di coordinate. Quindi viene generato l'asse Y utilizzando la convenzione della mano destra.

Il metodo consiste nell'esaminare l'asse Z dato (denominato anche vettore normale). Se si trova in prossimità dell'asse Z globale positivo o negativo, incrociare l'asse Y globale con l'asse Z specificato per ottenere l'asse X arbitrario. In caso contrario, incrociare l'asse Z globale con l'asse Z specificato per ottenere l'asse X arbitrario. L'algoritmo di scelta utilizza un semplice calcolo, indipendente dalla piattaforma hardware, basato su una specie di calotta polare “quadrata”, i cui lati sono 1/64, che può essere rappresentata con precisione utilizzando sei cifre decimali e sei bit binari.

L'algoritmo esegue le operazioni descritte di seguito (si parte dal presupposto che tutti i vettori si trovano nello spazio 3D e sono specificati nel sistema di coordinate globali):

Let the given normal vector be called N.
Let the world Y axis be called Wy, which is always (0,1,0).
Let the world Z axis be called Wz, which is always (0,0,1).

Nell'esempio riportato di seguito si desidera ottenere gli assi X e Y arbitrari associati alla normale N. Questi assi verranno chiamati Ax e Ay. N potrebbe essere chiamato anche Az (asse Z arbitrario).

If (abs (Nx) < 1/64) and (abs (Ny) < 1/64) then
     Ax = Wy X N (where “X” is the cross-product operator).
Otherwise,
     Ax = Wz X N.
Scale Ax to unit length.

Per ottenere il vettore Ay:

Ay = N X Ax. Scale Ay to unit length.