Fundamentos de Computação Gráfica
Prof.: Marcelo Gattass
Interface para rotações
Tipo ArcBall
Hildebrando Trannin
Definição
 Objetivo:
implementar um algoritmo para
realizar a rotação de um cubo utilizando o
conceito de arcball
 Entrada:
 Saída:
captura do movimento do mouse
cubo girado de acordo com
movimento do mouse no arcball
Rotação

Rotação em torno de um eixo arbitrário
z

ê – eixo de rotação
θ – ângulo de rotação
ê
y
x

Matriz resultante após alguns cálculos
 cos  (1  cos )e x2

e e (1  cos )  e z sin 
M x y
e x e z (1  cos )  e y sin 

0

e y e x (1  cos )  e z sin 
e z e x (1  cos )  e y sin 
cos  (1  cos )e y2
e y e z (1  cos )  e x sin 
e z e y (1  cos )  e x sin 
cos  (1  cos )e z2
0
0
0

0
0

1
Quatérnios

Números complexos no R3



q = a+bi+cj+dk
q = (s, v), s – parte real e v – vetor que representa parte imaginária
Facilita o cálculo das rotações em torno de um eixo

 
  
q
cos
,
sin


 ê


2
2 


ê – eixo de rotação
θ – ângulo de rotação
Realização da rotação através do produto de quatérnios

Rotação de um ponto em torno de um eixo

rotação = q p q-1
 p = (0 , r) - ponto na forma de quatérnio
 q = (s,v) - quatérnio representando a rotação (ângulo e eixo)
ArcBall

Definição: interface para rotação de um objeto 3D
através da utilização do mouse
a – eixo de rotação
θ – ângulo de rotação
Propriedade conservativa
Implementação

Etapas do algoritmo utilizando quatérnio
1.
2.
3.
4.
Encontra os pontos inicial e final de movimentação do mouse
na esfera do arcball adaptando-os aos eixos do objeto
Gera o quatérnio desses dois pontos
Multiplica o quatérnio final pelo conjugado do inicial e
encontra o quatérnio de rotação
Recalcula os eixos do objeto a partir da transposta da matriz
de rotação calculada a partir do quatérnio de rotação
Implementação

Etapas do algoritmo sem quatérnio
1.
2.
3.
4.
5.
Encontra os pontos inicial e final de movimentação do mouse
na esfera do arcball adaptando-os aos eixos do objeto
Calcula o produto vetorial desses dois pontos para encontrar
o eixo de rotação
Calcula o produto escalar para encontrar o cosseno do
ângulo de rotação. Para encontrar o ângulo é utilizado o
arco-cosseno
Calcula a matriz de rotação a partir do ângulo e do eixo
Recalcula os eixos do objeto a partir da transposta da matriz
de rotação
Referências

http://www.tecgraf.puc-rio.br/~mgattass

ARCBALL: A User Interface for Specifying Three-Dimensional Orientation Using a Mouse - Ken
Shoemake

Utilização de quatérnios para representação de rotações em 3D - Sergio Coutinho de Biasi e
Marcelo Gattass
Download

Apresentação - PUC-Rio