O algoritmo do eixo arbitrário é usado internamente pelo programa do AutoCAD para implementar a geração arbitrária es consistente de sistemas de coordenadas do objeto para todas as entidades que usam coordenadas de objetos.
Dado um vetor de comprimento de unidade a ser utilizada como o eixo Z de um sistema de coordenadas, o algoritmo de eixo arbitrário gera um eixo X correspondente do sistema de coordenadas. O eixo Y acompanha pela aplicação da regra da mão direita.
O método é para examinar o eixo Z determinado (também chamado de vetor normal). Se ele estiver próximo ao eixo Z do mundo positivo ou negativo, cruze o eixo Y universal com o eixo Z para chegar ao eixo X arbitrário. Se não for fechado, cruze o eixo Z universal com o eixo Z determinado para obter o valor arbitrário do eixo X. O limite pelo qual a decisão foi selecionada foi feito para ser debaixo custo para calcular e completamente portáveis através de máquinas. Isso é conseguido tendo uma espécie de tampa polar “quadrada”, os limites do qual é 1/64, que é precisamente determinável em dígitos de seis décimos e em seis bits de fração binária.
O algoritmo faz o seguinte (todos os vetores são considerados como no espaço 3D e especificados no sistema de coordenadas universal):
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).
Aqui, estamos procurando o valor arbitrário dos eixos X e Y de para ir com o N normal. Eles serão chamados Ax e Ay. N também pode ser chamado Az (o valor arbitrário do eixo Z), como segue:
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.
O método para obter o vetor Ay é como segue:
Ay = N X Ax. Scale Ay to unit length.