A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

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

Apresentações semelhantes


Apresentação em tema: "Fundamentos de Computação Gráfica Prof.: Marcelo Gattass"— Transcrição da apresentação:

1 Fundamentos de Computação Gráfica Prof.: Marcelo Gattass
Rotações Tipo ArcBall Ismael Andrade Pimentel

2 Objetivo Implementar um algoritmo para realizar a rotação de um objeto em torno de um eixo qualquer, utilizando o conceito de arcball Captura do movimento do mouse Objeto girado de acordo com movimento do mouse no arcball

3 Definição Arcball é uma técnica de computação gráfica que utiliza o mouse como entrada para ajustar a orientação espacial de um objeto. Para isso é utilizada uma esfera ao redor desse objeto e através do clique e arraste de um determinado ponto da esfera, tal objeto é rotacionado. a – eixo de rotação θ – ângulo de rotação Propriedade conservativa

4 Rotação –Técnicas Existem diversas técnicas de rotação para girar objetos no espaço tridimensional. Nesse trabalho foi proposto duas técnicas de rotação: matriz de rotação e quatérnios.

5 Matriz de rotação Rotação em torno de um eixo arbitrário
Matriz resultante x y z ê – eixo de rotação θ – ângulo de rotação ê

6 Quatérnios É uma técnica que generaliza o cálculo vetorial e os números complexos. Um quatérnio de rotação é determinado pelo cosseno do ângulo de rotação (parte real) e o eixo de rotação (parte imaginária): Quatérnio Obtenção do quatérnio de rotação Conversão de xyz para a base do arcball Correção dos eixos do arcball Pontos xyz (base da câmera)

7 onde pt é o ponto da esfera, screen é o ponto da imagem
Para obter os pontos xyz da base da câmera é necessário obter um arco de rotação. Tal arco é obtido quando o usuário clica na esfera e arrasta o mouse, tendo assim dois pontos dessa esfera em relação a base da câmera. Tais pontos são obtidos através do seguinte processo: pt.x = (screen.x – center.x)/radius; pt.y = (screen.y – center.y)/radius; r = pt.x*pt.x + pt.y*pt.y; IF r > 1.0 THEN s = 1.0/Sqrt[r]; pt.x = s*pt.x; pt.y = s*pt.y; pt.z = 0.0; ELSE pt.z =Sqrt[1.0 - r]; onde pt é o ponto da esfera, screen é o ponto da imagem (ponto bidimensional) e center é o centro da esfera na imagem.

8 Trabalho Alternativa Visualização da octree utilizando o OpenGL

9 Referências http://www.tecgraf.puc-rio.br/~mgattass


Carregar ppt "Fundamentos de Computação Gráfica Prof.: Marcelo Gattass"

Apresentações semelhantes


Anúncios Google