Trabalho aeds 2 - tp0
Instituto de Ciências Exatas
Departamento de Ciência da Computação
Algoritmos e Estruturas de Dados II
2º Semestre de 2011
Trabalho Prático 0 – Revisão de Programação e Tipos Abstratos de dados
Valor: 3 pontos
Data de entrega: 29/08/2011
O objetivo desse trabalho é rever conceitos básicos de programação bem como explorar os conceitos de
Tipos Abstratos de Dados (TADs) e análise de complexidade, além de exercitar a preparação e submissão de trabalhos práticos em AEDS II.
Você deverá programar um tipo abstrato de dados T3D, que será usado para realizar transformações geométricas e projeções a partir de objetos tridimensionais. A base do TAD é a representação de conjuntos de coordenadas homogêneas, em que cada vértice geométrico é representado por um vetor 4x1, que contém as coordenadas x, y, z e t, com t = 1 para as finalidades deste trabalho. Portanto, você deverá definir um tipo estruturado para matriz 4x4 e outro para matriz 4x1, e também um TipoObjeto para conter vetores de vértices, limitados a um valor constante MAXVERT (use #define). Inclua no TipoObjeto um atributo inteiro para indicar o número de vértices efetivamente usados.
As transformações são obtidas a partir da combinação de transformações primitivas, listadas abaixo. As transformações primitivas são representadas por matrizes 4 x 4, e a combinação de duas transformações se faz por pré-multiplicação de matrizes. As transformações primitivas que serão implementadas no TAD são as seguintes:
Translação:
T ( ∆ x , ∆ y, ∆ z ) =
1 0 0 ∆x
0 1 0 ∆y
0 0 1 ∆z
000 1
Mudança de escala:
S(Fx, Fy, Fz ) =
Fx
0
0
0
Fy
0
0
0
Fz
0
0
0
0
0
0
1
Rotação (em torno dos eixos x, y e z, a partir da origem do sistema de coordenadas):
Rx (θ ) =
Ry (θ ) =
Rz (θ ) =
1
0
0 cosθ
0