Como já visto em aula, a correta utilização de curvas paramétricas é essencial em diversas atividades de desenho e modelagem.
O resultado deste trabalho será a criação de um editor simplificado para curvas. Você pode escolher o modelo de curvas que desejar (Bezier, B-Spline, Hermite, Catmull-Rom) e implementá-lo.
O editor deverá ser escrito em C/C++, utilizando o pacote gráfico OpenGL para visualização 2D. As seguintes opções devem estar disponíveis:
A curva deverá ser criada com o mouse, onde cada clique indicará um dos pontos de controle. As demais opções podem ser disponibilizadas através de teclas específicas ou de um menu.
A área de desenho inicial deverá ser estabelecida previamente, por exemplo, 100 x 100 unidades. Note que são coordenadas de universo, não de tela! Isto significa que a janela de seleção (glOrtho) deverá ser especificada como, por exemplo, -50 a 50 para X e -50 a 50 para Y.
As opções de deslocar, aproximar e afastar devem simplesmente alterar esses parâmetros e redesenhar a tela.
Veja este exemplo, que desenha a função seno na tela.
Para descobrir a posição de universo equivalente à posição do mouse, você deverá utilizar as fórmulas de mapeamento vistas em aula, só que ao contrário (SRD para SRU, ao invés de SRU para SRD):
xu = (xd*(xmax-xmin)/(largura))+xmin yu = (yd*(ymin-ymax)/(altura))+ymax
Onde:
O programa será avaliado segundo os seguintes critérios:
O trabalho poderá ser realizado em duplas e entregue no dia 01/07/2002.
Deverá ser entregue um disquete etiquetado com o nome dos alunos e o código-fonte do trabalho.