Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Prévia do material em texto

Felipe Leviski Medeiros
Lista de exercícios ICG
1) Apresentar a matriz da transformação para rotacionar em 30° o segmento PQ, sendo P(5,1)
e Q(7,4), em torno do ponto R(3,4).
2) Considerando as transformações de escala - S, translação - T e rotação - R, pede-se: a
composições a seguir são equivalentes? Demonstre.
T*R*S = T*S*R;
3) Com base na figura F-01 pede-se:
a. A sequência de transformações elementares tal que o centro do quadrado de lado 20
da figura 1 seja posicionado na origem do sistema XY com o lado AB paralelo ao
eixo Y. Considere
b. A matriz de cada uma das transformações elementares;
c. A matriz da transformação composta.
4) Considere o quadrilátero definido pelos pontos P1 = (0,0), P2 = (0,1), P3 = (1,1) e P4 =
(1,0). Verifique se é possível transformá-lo no quadrilátero Q1 = (1,0), Q2 = (3,3), Q3 = (6,3)
e Q4 = (4,0). Se sim determine a matriz de transformação em coordenadas homogêneas.
5) Considere um sistema de coordenadas homogêneas. Selecione a alternativa falsa a seguir,
justifique sua resposta
a) Um ponto do plano projetivo é representado por uma tripla [x,y,w] ao invés de um par
(x,y);
b) O plano euclidiano está imerso no plano projetivo;
c) As triplas [x,y,w] e [x ́, y ́, w ́] representam o mesmo ponto se uma é um múltiplo da
outra;
d) A operação de homogeneização consiste em fazer w=0;
e) A uso das coordenadas homogêneas permite representar as transformações de forma
unificada
6) Analise as situações colocadas a seguir.
a. Verifique se o ponto P=(1,1) pode ser transformado no ponto Q = (−2,−3)
aplicando-se uma translação. Em caso afirmativo apresente a matriz de translação,
senão justifique;
b. Verifique se o ponto P=(1,1) pode ser transformado no ponto Q = (−2,−3)
aplicando-se uma rotação. Em caso afirmativo apresente a matriz de rotação, se não
justificar.
c. Verifique se o ponto P=(1,1) pode ser transformado no ponto Q = (−2,−3)
aplicando-se uma escala. Em caso afirmativo apresente a matriz de escala, se não
justificar.
d. Verifique se o ponto P=(1,1) pode ser transformado no ponto Q = (−2,−3)
aplicando-se um cisalhamento. Em caso afirmativo apresente a matriz de
cisalhamento, senão justifique.
7) Considere: todas as etapas do processo de visualização de objetos 2D; uma window
delimitada pelo par de coordenadas (0,0)-(60,60); uma viewport delimitada pelo par de
coordenadas (0,0)-(100,80); e os seguintes parâmetros de instanciamento, aplicados nesta
ordem: (1º) Escala em X: 1, Escala em Y: 2; (2º) Rotação: 0°; (3º) Translação X: 10,
Translação Y: 0. Assumindo que, nas opções apresentadas abaixo, os retângulos pontilhados
representam a viewport, qual dos desenhos a seguir mais se parece com o desenho do
triângulo cuja definição no sistema de referência do universo é dada pelos pares de
coordenadas (10,0)-(10,30)-(40,0)? Considere ainda que as coordenadas que definem window
e viewport correspondem, respectivamente, aos limites inferior esquerdo e superior direito de
ambas
8) Considere uma transformação dada pela seguinte composição de transformações
T(2, −1) ∙ R(−30°) ∙ R(−40°) ∙ S(−2, 3) ∙ S(0, 3) ∙ T(−2 , 1).
Verifique se é possível obter uma transformação com menos termos e que gere o mesmo
resultado. Em sendo possível apresente a nova composição.
9) Considerando a ilustração apresentada na figura, determine
a. A sequência de transformações elementares necessárias para transformar o polígono
A no polígono B da figura abaixo, sabendo-se que o reticulado da figura indica uma
unidade;
b. A matriz para cada uma das transformações elementares;
c. A matriz da transformação composta.
10) Em relação às Transformações afins, podemos afirmar que (1.0 pontos):
a) Consiste em representar um espaço 2D imerso em um espaço 3D
b) Consiste numa transformação do espaço 2D para o 3D
c) Requer uma etapa de projeção
d) É o mesmo que transformação de translação
e) Preservam retas, razão de seção e coordenadas baricêntricas
11) Pode-se afirmar que a matriz
a) É uma transformação afim
b) É uma transformação linear
c) É uma translação e uma rotação
d) É um movimento de corpo rígido
e) É uma transformação projetiva
12) Considere um sistema de coordenadas homogêneas. Selecione todas as alternativas
verdadeiras a seguir
a) Um ponto do plano projetivo é representado por uma tripla [x,y,w] ao invés de um par
(x,y);
b) O plano euclidiano está imerso no plano projetivo;
c) As triplas [x,y,w] e [x ́, y ́, w ́] representam o mesmo ponto se uma é um múltiplo da
outra;
d) Operação de homogeneização consiste em fazer w=0;
e) O uso das coordenadas homogêneas permite representar as transformações de forma
unificada
13) Dado o programa abaixo, pede-se:
1 #include <GL/glut.h>
2 #include <stdlib.h>
3
4 void draw(){
5 glClearColor( 100, 100, 0, 0 );
6 glClear ( GL_COLOR_BUFFER_BIT );
7 glMatrixMode(GL_PROJECTION);
8 glLoadIdentity();
9 gluOrtho2D(0.0,50.0,-10.0,40.0);
10 glColor3f( 0, 0, 1 );
11 //glRect(x1,y1,x2,y2)
12 glRectf(10.0,10.0,20.0,20.0);
13 glutSwapBuffers();
14 }
15 int main(int argc, char ** argv){
16 glutInit(&argc, argv);
17 glutInitDisplayMode( GLUT_RGB |
18 GLUT_DOUBLE);
19 glutInitWindowSize( 100,500 );
20 glutCreateWindow("P1");
21 glutDisplayFunc(draw);
22 glutMainLoop();
23 return 0;
24 }
a) Determinar as dimensões da viewport. Justifique sua resposta.
b) Desenhar a cena conforme ela será apresentada na viewport (calcular as
coordenadas).
14) Dado o programa a seguir pede-se:
1 #include <stdlib.h>
2 #include <GL/glut.h>
3
4 float win, aspecto;
5 int largura, altura;
6
7 void Desenha2(){
8 glColor3f(0.0f, 0.0f, 1.0f);
9 glBegin(GL_QUADS);
10 glVertex2f(-15.0f, -15.0f);
11 glVertex2f(-15.0f, 5.0f);
12 glVertex2f(15.0f, 5.0f);
13 glVertex2f(15.0f, -15.0f);
14 glEnd();
15 glColor3f(0.0f, 1.0f, 0.0f);
16 glBegin(GL_QUADS);
17 glVertex2f(-4.0f, 14.5f);
18 glVertex2f(-4.0f, 0.0f);
19 glVertex2f(4.0f, 0.0f);
20 glVertex2f(4.0f, -14.0f);
21 glVertex2f(7.0f, -5.0f);
22 glVertex2f(7.0f, -1.0f);
23 glVertex2f(13.0f, -1.0f);
24 glVertex2f(13.0f, -5.0f);
25 glEnd();
26 glColor3f(1.0f, 0.0f, 0.0f);
27 glBegin(GL_TRIANGLES);
28 glVertex2f(-15.0f, 5.0f);
29 glVertex2f(0.0f, 17.0f);
30 glVertex2f(15.0f, 5.0f);
31 glEnd();
32 }
33
34 void Desenha(){
35 glClear(GL_COLOR_BUFFER_BIT);
36 glViewport(0, 0, largura, altura);
37 Desenha2();
38 glFlush();
39 }
40
41 void Resize(GLsizei w, GLsizei h){
42 if(h == 0) h = 1;
43 largura = w/2;
44 altura = h;
45 glMatrixMode(GL_PROJECTION);
46 glLoadIdentity();
47 gluOrtho2D(-win, win, -win, win);
48 }
49
50 void Inicializa(void){
51 glClearColor(1.0f, 1.0f, 1.0f,
1.0f);
52 win = 50.0f;
53 }
54
55 int main(int argc, char** argv){
56 glutInit(&argc, argv); //
Initialize GLUT
57 glutInitDisplayMode(GLUT_SINGLE |
GLUT_RGB);
58 glutInitWindowPosition(5, 5);
59 glutInitWindowSize(600, 600);
60 glutCreateWindow("Questao 04");
61 glutDisplayFunc(Desenha);
62 glutReshapeFunc(Resize);
63 Inicializa();
64 glutMainLoop();
65 return 0;
66 }
a. As dimensões da viewport;
b. Será exibido alguma imagem na viewport do item a)? Se sim mostre o que será
desenhado;
c. A imagem apresentada na viewport do item a) sofre alguma distorção? Mostre.
d. As dimensões da viewport quando se altera o valor da variável largura de w/2 para
w/3 e a altura de h para h/2;
e. Será exibido alguma imagem na viewport do item c)? Se sim mostre o que será
desenhado.
f. A imagem apresentada na viewport do item d) sofre alguma distorção? Mostre.
15) Dada a rotina Atualiza_desenho() a seguir.
1 void Atualiza_desenho(void) {
2 glTranslatef (0.0, 0.0, -2.0); /* T1 */
3 glPushMatrix();
4 glRotate(90, 0.0, 0.0, 1.0); /* R1 */
5 Obj1(); /*desenha obj1*/
6 glPushMatrix();
7 glScalef(2.0, 1.0, 1.0); /* S1 */
8 Obj2(); /*desenha obj2*/
9 glPopMatrix();
10 glTranslatef (0.0, 0.0, -2.0); /* T2 */
11 Obj3(); /*desenha obj3*/
12 glPopMatrix();
13 Obj4(); /*desenha obj4*/
14 glFlush();
15
Pede-se, determinar qual(is) da(s) transformação(ões) compostas a seguir afeta(m) o objeto
Obj3. Justifique sua resposta simulando o comportamento da pilha.
M1 = T2 ∙ S1 ∙ R1 ∙ T1 M4 = R1∙ S1 M7 = T1 ∙ R1 ∙ S1 M10 = T1 ∙ S1 ∙ R1
M2 = T1 M5 = T1 ∙ R1 ∙ T2 M8 = T2 ∙ S1
M3 = T2 ∙ S1 M6 = T1 ∙ R1 M9 = R1
16) Considerando o programa Boneco de Neve Pede-se
1 #include <stdlib.h>
2 #include <math.h>
3 #include <stdio.h>
4 #include <GL/glut.h>
5
6 #define ESC 27
7
8 void TamanhoJanela(int w, int h) {
9 float ratio = ((float) w) /
((float) h); // razão de aspecto
10 glMatrixMode(GL_PROJECTION); //
Matriz de projeção
11 glLoadIdentity(); // inicializa
matriz de projeção com a matriz
identidade
12 gluPerspective(45.0, ratio, 0.1,
100.0); // Transformação Perspectiva
13 glMatrixMode(GL_MODELVIEW); //
Seleciona Matriz corrente como Model View
55 glPopMatrix();
56
57 // Nariz
58 glColor3f(1.0, 0.5, 0.5); //
cor laranja
59 glPushMatrix();
60 glRotatef(90.0, 1.0, 0.0,
0.0); // rotação com final apontando para
-y
61 glutSolidCone(0.08, 0.5,
10, 2); // Cone - base,altura, 10 por 2
62 glPopMatrix();
63 glPopMatrix();
64 }
65
66 void DesenhaCena(void) {
67 int i, j;
68
69 glClearColor(0.0, 0.7, 1.0, 1.0);
14 glViewport(0, 0, w, h); // Define
view port na janela de interação
15 }
16
17 void DesenhaQuadrado() {
18 glBegin(GL_LINE_LOOP);
19 glVertex3f(-1.0, -1.0, 0.0);
20 glVertex3f(-1.0, 1.0, 0.0);
21 glVertex3f(1.0, 1.0, 0.0);
22 glVertex3f(1.0, -1.0, 0.0);
23 glEnd();
24 }
25
26 void DesenhaBoneco() {
27 // Corpo - esfera de raio 0.75, 20
por 20
28 glColor3f(1.0, 1.0, 1.0); // Cor
Branca
29 glPushMatrix();
30 glTranslatef(0.0, 0.0, 0.75);
31 glutSolidSphere(0.75, 20, 20);
32 glPopMatrix();
33
34 // Cabeça - esfera de raio 0.25,
20 por 20
35 glPushMatrix();
36 glTranslatef(0.0, 0.0, 1.75);
// posição da cabeça - (0.75 + 0.75:
corpo) + (0.25: raio cabeça)
37 glutSolidSphere(0.25, 20, 20);
38
39 // Olhos - esfera de raio
0.05, 10 por 10
40 glColor3f(0.0, 0.0, 0.0); //
cor preta
41 glPushMatrix();
42 glTranslatef(0.0, -0.18,
0.10); // posição final dos olhos
43 glPushMatrix();
44 glTranslatef(-0.05, 0.0,
0.0);
45 glutSolidSphere(0.05, 10,
10); // olho direito
46 glPopMatrix();
47 glPushMatrix();
48 glTranslatef(+0.05, 0.0,
0.0);
49 glutSolidSphere(0.05, 10,
10); // olho esquerdo
50 glRotated(-30, 1, 0, 0);
51 glTranslatef(-0.05, 0.18,
0.15);
52 glColor3f(1.0, 0.5, 0.5);
53 DesenhaQuadrado();
54 glPopMatrix();
// limpa a janela de iteração com a cor
azul
70 glClear(GL_COLOR_BUFFER_BIT |
GL_DEPTH_BUFFER_BIT);
71
72 glLoadIdentity();
73
74 // Configuração da câmera
75 // posição, direção da cena,
orientação up
76 gluLookAt(0, -5.0, 1.0, 0, -4.0,
1.0, 0.0, 0.0, 1.0);
77
78 // Piso - quadrado 200 por 200
79 glColor3f(0.0, 0.7, 0.0);
80 glBegin(GL_QUADS);
81 glVertex3f(-100.0, -100.0,
0.0);
82 glVertex3f(-100.0, 100.0,
0.0);
83 glVertex3f(100.0, 100.0, 0.0);
84 glVertex3f(100.0, -100.0,
0.0);
85 glEnd();
86
87 DesenhaBoneco();
88 glutSwapBuffers();
89 }
90
91 void Teclas(unsigned char key, int kx,
int ky) {
92 if (key == ESC || key == 'q' ||
key == 'Q')
93 exit(0);
94 }
95
96 int main(int argc, char **argv) {
97 // Inicialização
98 glutInit(&argc, argv);
99 glutInitDisplayMode(GLUT_DEPTH |
GLUT_DOUBLE | GLUT_RGBA);
100 glutInitWindowPosition(100, 100);
101 glutInitWindowSize(800, 400);
102 glutCreateWindow(" Boneco de
Neve");
103 glutReshapeFunc(TamanhoJanela);
104 glutDisplayFunc(DesenhaCena);
105 glutKeyboardFunc(Teclas);
106 glutMainLoop();
107 return 0;
108 }
a. Determine a matriz da transformação de coordenadas do Sistema de Referência do
Objeto para o Sistema de Referência da Câmera;
b. Determine a Matriz de Projeção;
c. Determine as coordenadas do objeto DesenhaQuadrado no Sistema de Referência da
d. Câmera (“ver o objeto a partir da câmera”).

Mais conteúdos dessa disciplina