interface para rotações tipo arcball

8
Interface para rotações Tipo ArcBall Hildebrando Trannin Fundamentos de Computação Gráfica Prof.: Marcelo Gattass

Upload: lundy

Post on 24-Jan-2016

29 views

Category:

Documents


0 download

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 Presentation

TRANSCRIPT

Page 1: Interface para rotações Tipo ArcBall

Interface para rotaçõesTipo ArcBall

Hildebrando Trannin

Fundamentos de Computação GráficaProf.: Marcelo Gattass

Page 2: Interface para rotações Tipo ArcBall

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

Page 3: Interface para rotações Tipo 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

Page 4: Interface para rotações Tipo ArcBall

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

Page 5: Interface para rotações Tipo ArcBall

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

Page 6: Interface para rotações Tipo ArcBall

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

Page 7: Interface para rotações Tipo ArcBall

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

Page 8: Interface para rotações Tipo ArcBall

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