Algoritmus nahodilé osy (DXF)

Algoritmus nahodilé osy se v aplikaci AutoCAD používá interně k implementaci nahodilého, ale konzistentního vytváření souřadnicových systémů objektů pro všechny entity, které používají souřadnice objektů.

Po zadání vektoru jednotkové délky, který bude použit jako osa Z souřadnicového systému, vytvoří algoritmus nahodilé osy odpovídající osu X pro souřadnicový systém. Následuje osa Y, pro kterou se použije pravidlo pravé ruky.

Tato metoda slouží k prozkoumání dané osy Z (nazývané také normálový vektor). Pokud je blízko ke kladné nebo záporné globální ose Z, protne se globální osa Y s danou osou Z a dosáhne se nahodilé osy X. Pokud není, protne se globální osa Z s danou osou Z a dosáhne se nahodilé osy X. Hranice, na které se přijímá rozhodnutí, byla zvolena tak, aby byla nenáročná na výpočet a zcela přenositelná mezi počítači. Toho je dosaženo pomocí jistého typu „čtvercového“ polárního zakončení, jehož meze jsou 1/64, což lze přesně specifikovat šesti desítkovými zlomkovými číslicemi a šesti binárními zlomkovými bity.

Algoritmus provádí následující výpočty (u všech vektorů se předpokládá, že jsou ve 3D prostoru a zadány v globálním souřadnicovém systému):

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).

Zde hledáme nahodilé osy X a Y pro normálu N. Tyto osy se budou nazývat Ax a Ay. Normála N by se mohla také nazývat Az (nahodilá osa Z) a používá se následovně:

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.

Metoda pro získání vektoru Ay je následující:

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