80 likes | 157 Views
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
E N D
Fundamentos de Computação Gráfica Prof.: Marcelo Gattass Interface para rotaçõesTipo 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 • Saída: cubo girado de acordo com movimento do mouse no arcball
Rotação • Rotação em torno de um eixo arbitrário • Matriz resultante após alguns cálculos z ê – eixo de rotação θ – ângulo de rotação ê y x
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) ê – 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 • 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 • 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