Conversão de base espacial
# Conversão de base espacial

Conversão de base espacial é a troca de um sistema de base tridimensional de coordenadas por outro.

## Introdução

Um ponto pode ser representado no espaço por meio de:
* Coordenadas cartesianas: usando-se os valores de x, y e z no qual este ponto se projeta sobre os respectivos eixos;
* Coordenadas cilíndricas: usando-se a distância entre a origem e o ponto projetado sobre o plano XY, o ângulo deste ponto no mesmo plano e a projeção deste ponto no eixo Z;
* Coordenadas esféricas: usando-se a distância entre a origem e o ponto, o ângulo da projeção do ponto no plano XY e o ângulo entre o eixo Z e o vetor ${\overrightarrow {OP}}$
Em todos estes casos o ponto é posicionado no espaço, colocando-o em algum tipo de relação com a posição dos eixos que formam a base do sistema. Porém, pode ser necessário representar este mesmo ponto, na mesma posição, tomando por base um novo conjunto de eixos, com outra posição e orientação. Neste caso aplica-se uma mudança de base.

## Método

A mudança de base com deslocamento e com rotação não é feita num único passo, porém os passos indicados são cumulativos, assim caso haja somente uma das mudanças somente o métodos respectivo necessita ser aplicado. Se forem as duas aplica-se ambos:

### Mudança de posição

Tomando-se em conta o sistema cartesiano simplesmente é necessário deslocar o ponto no mesmo valor em que a origem dos sistemas e destino foram deslocados.
Exemplo do ponto P(a, b, c) no sistema A(1, 2, 0) para o sistema B(2, 0, -5):
No sistema B o ponto P passaria a ser representado por: P((1-2), (2-0), (0-(-5))) = P(-1, 2, 5)

### Mudança de orientação

A mudança entre bases que estão rotacionadas entre si pode ser feita com o uso de uma matriz de mudança de base (também chamada de matriz de transição ou de passagem).
Supondo a passagem do ponto $P\left(x,y,z\right)$ da base A para base B. Então o ponto $P\left(r,s,t\right)$ (P em B), seria dado por:
${\begin{matrix}{\begin{vmatrix}x\\y\\z\end{vmatrix}}=\underbrace {\begin{vmatrix}a_{1}&a_{2}&a_{3}\\b_{1}&b_{2}&b_{3}\\c_{1}&c_{2}&c_{3}\end{vmatrix}} \cdot {\begin{vmatrix}r\\s\\t\end{vmatrix}}\\{\mbox{Matriz de passagem}}\end{matrix}}$
Onde a matriz de mudança de base é formada pelas coordenadas dos vetores unitários que representam os novos eixos na base original. Em outras palavras: $a_{1}\;b_{1}$ e $\;c_{1}$ formam as coordenadas do novo eixo X quando representado na base original. O índice 2 é para o vetor Y e o 3 para o vetor Z.

## Exemplo de uso prático

Um exemplo clássico é a projeção de desenhos em monitores de computador. Softwares CAD por exemplo, trabalham em memória com um modelo 3D do objeto sendo desenhado, porém ao mostrar na tela é necessário convertê-lo para 2D e reposicioná-lo caso o operador arraste o desenho de um lado para outro. Para realizar estas tarefas vários algoritmos são usados, sendo que um deles envolve mudanças de base.
Quando o software precisa mostrar a face traseira de um cubo por exemplo, ele tomas as seguintes medidas:
* Obtém uma representação atual deste cubo no sistema de coordenadas original, que vamos chamar de s0.
* Cria um novo sistema de coordenadas na qual rotacionou algum eixo, no caso (para ver a traseira), ele teria que rotacionar o eixo Z 180 graus, então vamos chamar este sistema de s180.
* Aplica uma mudança de base de todos os pontos do cubo do sistema s0 por um sistema s180.
* Simplesmente ignora o sistema s0 e passa a trabalhar com o s180 como se fosse o s0.
Veja que quando aplicamos mudança de base o cubo passou para o s180 ainda de frente. Quando passamos a ignorar o fato do s180 estar rotacionado 180 graus e simplesmente dizemos que ele na verdade é o s0 ai sim passamos a ver o cubo de trás para frente.
* Aplica algum algoritmo que faça a conversão de coordenadas 3D para 2D e finalmente desenha a versão 2D na tela.