interface para rotações tipo arcball
DESCRIPTION
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: captura do movimento do mouse - PowerPoint PPT PresentationTRANSCRIPT
Interface para rotaçõesTipo ArcBall
Hildebrando Trannin
Fundamentos de Computação GráficaProf.: Marcelo Gattass
Definição
Objetivo: implementar um algoritmo para realizar a rotação de um cubo utilizando o conceito de arcball
Entrada: captura do movimento do mouse
Saída: cubo girado de acordo com movimento do mouse no arcball
Rotação em torno de um eixo arbitrário
Matriz resultante após alguns cálculos
Rotação
x
y
z
1000
0)cos1(cossin)cos1(sin)cos1(
0sin)cos1()cos1(cossin)cos1(
0sin)cos1(sin)cos1()cos1(cos
2
2
2
zxzyyzx
xyzyzyx
yxzzxyx
eeeeeee
eeeeeee
eeeeeee
M
êê – eixo de rotaçãoθ – ângulo de rotação
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
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)
ê
2sin,
2cos
q ê – eixo de rotação
θ – ângulo de rotação
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. Encontra os pontos inicial e final de movimentação do mouse na esfera do arcball adaptando-os aos eixos do objeto
2. Gera o quatérnio desses dois pontos3. Multiplica o quatérnio final pelo conjugado do
inicial e encontra o quatérnio de rotação4. 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. Encontra os pontos inicial e final de movimentação do mouse na esfera do arcball adaptando-os aos eixos do objeto
2. Calcula o produto vetorial desses dois pontos para encontrar o eixo de rotação
3. Calcula o produto escalar para encontrar o cosseno do ângulo de rotação. Para encontrar o ângulo é utilizado o arco-cosseno
4. Calcula a matriz de rotação a partir do ângulo e do eixo
5. 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