Uma Arquitetura de Suporte a Interações 3D ... - DCA - Unicamp
Uma Arquitetura de Suporte a Interações 3D ... - DCA - Unicamp
Uma Arquitetura de Suporte a Interações 3D ... - DCA - Unicamp
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
52 Atributos elementares para manipulação direta<br />
3.2.2 Posicionamento<br />
O uso <strong>de</strong> manipulação direta em cenas <strong>3D</strong> se difundiu na década <strong>de</strong> 1980 [Hand, 1997]. Além<br />
da seleção dos objetos <strong>de</strong> interesse numa cena, po<strong>de</strong>r posicionar <strong>de</strong> forma precisa o cursor sobre um<br />
ponto específico em uma cena <strong>3D</strong> é também fundamental. O posicionamento <strong>de</strong> um cursor po<strong>de</strong> ser<br />
livre ou restrito. No posicionamento livre o cursor controlado navega livremente pela cena sem levar<br />
em consi<strong>de</strong>ração os mo<strong>de</strong>los geométricos, i.e., o conteúdo da cena não interfere na movimentação<br />
do cursor. Em geral, essa tarefa se resume na realização <strong>de</strong> um mapeamento entre a movimentação<br />
do dispositivo apontador e a movimentação do cursor no espaço <strong>3D</strong> <strong>de</strong> interesse. Entre as técnicas<br />
encontradas na literatura po<strong>de</strong>mos mencionar a proposta <strong>de</strong> Nielson and Dan R. Olsen [1987] e Bier<br />
[1987].<br />
Na tarefa <strong>de</strong> posicionamento restrito, o cursor controlado pelo dispositivo apontador tem sua<br />
movimentação restrita a elementos da cena tais como superfícies, linhas e pontos, <strong>de</strong> modo a au-<br />
mentar o grau <strong>de</strong> precisão <strong>de</strong> posicionamento do cursor pelo usuário. Para tanto, funções adicionais<br />
são incluídas para ajustes finos da posição do cursor <strong>de</strong> sorte que ele fique sempre nos locais pré-<br />
programados. Por exemplo, Hudson [1990] se baseou em critérios semânticos, não geométricos, para<br />
restringir o cursor a objetos <strong>de</strong> um ambiente <strong>de</strong> programação visual 2D. Gleicher [1995] introduziu<br />
o conceito <strong>de</strong> restrição <strong>de</strong> cursor em imagens (image snapping) empregando métodos <strong>de</strong> <strong>de</strong>tecção <strong>de</strong><br />
bordas para obter pontos <strong>de</strong> restrição que facilitassem tarefas <strong>de</strong> segmentação <strong>de</strong> imagens e traçado<br />
<strong>de</strong> curvas a partir <strong>de</strong> imagens digitalizadas.<br />
No entanto, a técnica mais tradicional para posicionamento restrito também é baseada no método<br />
<strong>de</strong> ray picking. Ela é utilizada, por exemplo, em aplicativos <strong>de</strong> mo<strong>de</strong>lagem geométrica tais como o<br />
Auto<strong>de</strong>sk AutoCAD [Auto<strong>de</strong>sk, 2007b], Auto<strong>de</strong>sk 3ds Max [Auto<strong>de</strong>sk, 2007a] e Auto<strong>de</strong>sk Maya [Au-<br />
to<strong>de</strong>sk, 2007c]. Como vimos na seção 2.2, o algoritmo <strong>de</strong> ray picking se reduz à <strong>de</strong>terminação <strong>de</strong><br />
atributos <strong>de</strong> geometria associados às interseções entre o raio <strong>de</strong> seleção e os mo<strong>de</strong>los geométricos<br />
em cada interação. Utilizando o método <strong>de</strong> ray picking, o posicionamento restrito a uma superfície<br />
consiste em calcular as posições <strong>3D</strong> <strong>de</strong> todas as interseções entre o raio <strong>de</strong> seleção e os mo<strong>de</strong>los<br />
geométricos. O cursor <strong>3D</strong> é então <strong>de</strong>slocado para a interseção mais próxima do plano <strong>de</strong> projeção.<br />
Em uma tarefa <strong>de</strong> posicionamento restrito segundo a influência <strong>de</strong> um campo <strong>de</strong> atração, o algoritmo<br />
<strong>de</strong> ray picking po<strong>de</strong> ser modificado <strong>de</strong> modo a calcular o ponto visível da superfície que possua a<br />
menor distância entre o raio <strong>de</strong> seleção e cada mo<strong>de</strong>lo. Se essa distância for menor do que a distância<br />
<strong>de</strong>terminada pelo campo <strong>de</strong> atração, o cursor po<strong>de</strong> ser <strong>de</strong>slocado para esse ponto, simulando assim o<br />
efeito <strong>de</strong> atração <strong>de</strong>sejado.<br />
Bier [1987], em sua técnica <strong>de</strong> snap-dragging, introduziu a idéia <strong>de</strong> utilizar um widget <strong>3D</strong> - o<br />
skitter - <strong>de</strong> modo a auxiliar o usuário na realização <strong>de</strong> tarefas <strong>de</strong> construção através <strong>de</strong> uma metáfora<br />
<strong>de</strong> régua e compasso. O skitter, também chamado <strong>de</strong> cursor tría<strong>de</strong> [Nielson and Dan R. Olsen,