Terceiro Projeto - Curvas
Objetivo
O objetivo deste projeto é proporcionar aos alunos maior
familiaridade com as curvas NURBS através da manipulação
dos seus parâmetros.
Descrição
As curvas NURBS conquistaram um espaço de destaque em CAGD
devido à sua versatilidade. Elas, além de terem uma descrição
concisa, conseguem representar as curvas de Bézier, Hermite e quádricas.
Neste projeto serão utilizadas as funcionalidades da
biblioteca
OpenGL/
Mesa
para definir essas curvas. O programa
curve.c demonstra o uso das
rotinas dessa biblioteca (as diretivas para gerar o seu executável
se encontram em Makefile):
- gluNewNurbsRenderer para criar uma entrada à estrutura
de dados de um objeto (curva ou patch) em Nurbs a ser criado.
- gluNurbsProperty para selecionar o modo de geração de um objeto em
Nurbs:
- GLU_SAMPLING_TOLERANCE: controla o número de amostras.
- GLU_DISPLAY_MODE: preenchido (GLU_FILL), contorno
externo do polígono (GLU_OUTLINE_POLYGON) e contorno
do patch (GLU_OUTLINE_PATCH).
- GLU_CULLING: com culling (GL_TRUE) ou não
(GL_FALSE, default).
- GLU_AUTO_LOAD_MATRIX: as matrizes de transformações
são carregadas automaticamente (GL_TRUE, default) ou não (GL_FALSE)
- gluNurbsCurve através da qual pode-se gerar curvas abertas
não-racionais
(GL_MAP1_VERTEX_3) e racionais (GL_MAP1_VERTEX_4). O quarto argumento
desta rotina especifica o número de valores em floating-point
entre dois pontos de controle e o sexto argumento, a ordem da curva.
Note ainda que o número de pontos de controle não é especificado
explicitamente. Ele é sempre computado em função da diferença
do número de nós (segundo
argumento) e da ordem da curva (sexto argumento).
Projete e gere as seguintes curvas tridimensionais
seguindo o molde de curve.c
- uma curva de grau 4 não-racional uniforme;
- uma sequência de 6 segmentos retos;
- uma curva Bézier de grau 5;
- uma sequência de 4 curvas de Bézier de grau 3;
- uma curva de grau 3, diferenciável até ordem 2 em todos os pontos,
porém com duas cúspides;
- uma curva de grau 2 descontínua;
- uma curva de grau 4 que apresentam pontos com diferenciabilidade
de ordem 0 até 3;
- uma curva fechada de grau 3;
- uma semi-circunferência; e
- um arco de hipérbole.
Relatório
O relatório deve constar os parâmetros das curvas projetadas com devidas
justificativas e uma cópia de cada curva gerada.
Voltar para a página do curso.
Ting