{"id":79,"date":"2022-03-23T22:08:49","date_gmt":"2022-03-23T22:08:49","guid":{"rendered":"https:\/\/wordpress.ft.unicamp.br\/magic\/exercicios-8\/"},"modified":"2022-03-23T22:08:49","modified_gmt":"2022-03-23T22:08:49","slug":"exercicios-8","status":"publish","type":"page","link":"https:\/\/wordpress.ft.unicamp.br\/magic\/exercicios-8\/","title":{"rendered":"Exerc\u00edcios"},"content":{"rendered":"<p>&#013;<\/p>\n<div class=\"NAVHEADER\">&#013;<\/p>\n<table cellspacing=\"0\" cellpadding=\"0\" width=\"100%\" border=\"0\">&#013;<\/p>\n<tbody>&#013;<\/p>\n<tr>&#013;<\/p>\n<th align=\"middle\" colspan=\"3\">Introdu\u00e7\u00e3o \u00e0 computa\u00e7\u00e3o gr\u00e1fica com &#013;<br \/>\nOpenGL<\/th>\n<\/tr>\n<p>&#013;<\/p>\n<tr>&#013;<\/p>\n<td valign=\"bottom\" align=\"left\" width=\"10%\"><a href=\"transformacoes-outros.html\">Prev<\/a><\/td>\n<p>&#013;<\/p>\n<td valign=\"bottom\" align=\"middle\" width=\"80%\">Cap\u00edtulo 4. Transforma\u00e7\u00f5es &#013;<br \/>\n      geom\u00e9tricas<\/td>\n<p>&#013;<\/p>\n<td valign=\"bottom\" align=\"right\" width=\"10%\"><a href=\"modelagem-solidos.html\">Next<\/a><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>&#013;<\/p>\n<hr align=\"left\" width=\"100%\" \/>&#013;\n<\/div>\n<p>&#013;<\/p>\n<div class=\"SECT1\">&#013;<\/p>\n<h1 class=\"SECT1\"><a name=\"TRANSFORMACOES-EXERCICIOS\">4.4. Exerc\u00edcios<\/a><\/h1>\n<p>&#013;<\/p>\n<p \/>&#013;<\/p>\n<p><b>Exerc\u00edcio obrigat\u00f3rio (2018)<\/b><\/p>\n<p>&#013;<\/p>\n<ol type=\"1\">&#013;<\/p>\n<li>\n<p> Modele via OpenGL uma cena gr\u00e1fica que contenha a simula\u00e7\u00e3o de um portal de entrada de uma cidade, contendo a via principal, a estrutura do portal e pelo menos 3 outros elementos.<br \/>&#013;<br \/>\nUse objetos s\u00f3lidos na modelagem. Use tamb\u00e9m teclas (ou mouse) para permitir a intera\u00e7\u00e3o do usu\u00e1rio com a cena, permitindo a sua rota\u00e7\u00e3o com rela\u00e7\u00e3o ao eixo vertical e o efeito <i>zoom<\/i>. Tente fazer em escala (escolha as dimens\u00f5es). <br \/>&#013;<br \/>\nComo sugest\u00e3o, pesquise refer\u00eancias para a cria\u00e7\u00e3o de sua cena gr\u00e1fica. Tenha tamb\u00e9m em mente que este exerc\u00edcio ser\u00e1 a base para os exerc\u00edcios seguintes, que consistem na inclus\u00e3o de textura e ilumina\u00e7\u00e3o na cena.<\/p>\n<p>&#013;\n<\/li>\n<\/ol>\n<p>&#013;<\/p>\n<p \/>&#013;<\/p>\n<p><b>Exerc\u00edcio obrigat\u00f3rio (2016)<\/b><\/p>\n<p>&#013;<\/p>\n<ol type=\"1\">&#013;<\/p>\n<li>\n<p> Modele via OpenGL uma cena gr\u00e1fica que contenha a simula\u00e7\u00e3o de uma rodovia e uma passarela para pedrestes a partir do uso de formas geom\u00e9tricas simples. &#013;<br \/>\nA cena deve possuir ao menos 3 outros elementos, tais como placas de sinaliza\u00e7\u00e3o, telefone de emerg\u00eancia e <i>guard rails<\/i>. <br \/>&#013;<br \/>\nALTERNATIVAMENTE, pode ser modelado um portal de entrada de uma cidade, contendo a via principal, a estrutura do portal e pelo menos 3 outros elementos.<br \/>&#013;<br \/>\nUse objetos s\u00f3lidos na modelagem. Use tamb\u00e9m teclas (ou mouse) para permitir a intera\u00e7\u00e3o do usu\u00e1rio com a cena, permitindo a sua rota\u00e7\u00e3o com rela\u00e7\u00e3o ao eixo vertical e o efeito <i>zoom<\/i>. Tente fazer em escala (escolha as dimens\u00f5es). <br \/>&#013;<br \/>\nComo sugest\u00e3o, pesquise refer\u00eancias para a cria\u00e7\u00e3o de sua cena gr\u00e1fica. Tenha tamb\u00e9m em mente que este exerc\u00edcio ser\u00e1 a base para os exerc\u00edcios seguintes, que consistem na inclus\u00e3o de textura e ilumina\u00e7\u00e3o na cena.<\/p>\n<p>&#013;\n<\/li>\n<\/ol>\n<p>&#013;<\/p>\n<p \/>&#013;<\/p>\n<p><b>Exerc\u00edcio obrigat\u00f3rio (2015)<\/b><\/p>\n<p>&#013;<\/p>\n<ol type=\"1\">&#013;<\/p>\n<li>\n<p> Modele via OpenGL uma estrutura do tipo <b> academia da melhor idade<\/b>, a partir do uso de formas geom\u00e9tricas simples. A academia deve possuir pelo menos 4 aparelhos. <br \/>&#013;<br \/>\nA academia deve estar situada em um ambiente do tipo pra\u00e7a.<br \/>&#013;<br \/>\nUse objetos s\u00f3lidos na modelagem. Use tamb\u00e9m teclas (ou mouse) para permitir a intera\u00e7\u00e3o do usu\u00e1rio com pelo menos um dos aparelhos presentes na academia, provocando sua transla\u00e7\u00e3o ou rota\u00e7\u00e3o, por exemplo. Tente fazer em escala (escolha as dimens\u00f5es). <br \/>&#013;<br \/>\nComo sugest\u00e3o, pesquise refer\u00eancias para a cria\u00e7\u00e3o de sua cena gr\u00e1fica. Tenha tamb\u00e9m em mente que este exerc\u00edcio ser\u00e1 a base para os exerc\u00edcios seguintes, que consistem na inclus\u00e3o de textura e ilumina\u00e7\u00e3o na cena.<\/p>\n<p>&#013;\n<\/li>\n<\/ol>\n<p>&#013;<\/p>\n<p \/>&#013;<\/p>\n<p><b>Exerc\u00edcio obrigat\u00f3rio (2014)<\/b><\/p>\n<p>&#013;<\/p>\n<ol type=\"1\">&#013;<\/p>\n<li>\n<p> Modele via OpenGL uma estrutura esportiva do tipo quadra de basquete, v\u00f4lei ou futebol de sal\u00e3o, por exemplo, a partir do uso de formas geom\u00e9tricas simples. A cena deve possuir pelo menos os seguintes ambientes\/elementos:<br \/>&#013;<br \/>\n&#8211; ch\u00e3o \/ quadra; <br \/>&#013;<br \/>\n&#8211; tabelas \/redes \/ traves ou equivalentes; <br \/>&#013;<br \/>\n&#8211; cercado e entrada principal ao ambiente; <br \/>&#013;<br \/>\n&#8211; pequena arquibancada ou banco de reservas.<br \/>&#013;<br \/>\nUse objetos s\u00f3lidos na modelagem. Use tamb\u00e9m teclas para permitir a intera\u00e7\u00e3o do usu\u00e1rio com algum objeto da cena, provocando sua transla\u00e7\u00e3o ou rota\u00e7\u00e3o, por exemplo. Tente fazer em escala (escolha as dimens\u00f5es). Inclua &#013;<br \/>\ntamb\u00e9m outro(s) elemento(s) a seu crit\u00e9rio (placar eletr\u00f4nico etc).<br \/>&#013;<br \/>\nComo sugest\u00e3o, pesquise refer\u00eancias para a cria\u00e7\u00e3o de sua cena gr\u00e1fica. Tenha tamb\u00e9m em mente que este exerc\u00edcio ser\u00e1 a base para os exerc\u00edcios seguintes, que consistem na inclus\u00e3o de textura e ilumina\u00e7\u00e3o na cena.<\/p>\n<p>&#013;\n<\/li>\n<\/ol>\n<p>&#013;<\/p>\n<p \/>&#013;<\/p>\n<p><b>Exerc\u00edcio obrigat\u00f3rio (2013)<\/b><\/p>\n<p>&#013;<\/p>\n<ol type=\"1\">&#013;<\/p>\n<li>\n<p> Modele via OpenGL uma fazenda. Tenha como refer\u00eancia as imagens mostradas abaixo, &#8220;A fazenda do Mickey Mouse&#8221;, constitu\u00edda de formas geom\u00e9tricas mais simples. A cena deve possuir pelo menos os seguintes ambientes\/elementos:<br \/>&#013;<br \/>\n&#8211; casa principal <br \/>&#013;<br \/>\n&#8211; caixa d&#8217;\u00e1gua<br \/>&#013;<br \/>\n&#8211; cercado e entrada principal<br \/>&#013;<br \/>\n&#8211; jardim<br \/>&#013;\n  <\/p>\n<div class=\"FIGURE\">&#013;<\/p>\n<p><b><a name=\"FIG-MICK1\">Figura. Fazenda do Mickey Mouse.<\/a><\/b><\/p>\n<p>&#013;<\/p>\n<p><img fetchpriority=\"high\" decoding=\"async\" src=\"mickey1.jpg\" width=\"450\" height=\"250\" \/><img decoding=\"async\" src=\"mickey2.jpg\" width=\"210\" height=\"300\" \/><\/p>\n<\/div>\n<p>&#013;<br \/>\nUse objetos s\u00f3lidos na modelagem. Use tamb\u00e9m teclas para permitir a intera\u00e7\u00e3o do usu\u00e1rio com algum objeto da cena, provocando sua transla\u00e7\u00e3o ou rota\u00e7\u00e3o, por exemplo. Tente fazer em escala (escolha as dimens\u00f5es). Inclua &#013;<br \/>\ntamb\u00e9m outro(s) elemento(s) a seu crit\u00e9rio (Outros ambientes podem ser inseridos, tais como celeiro, catavento e est\u00e1bulo).<br \/>&#013;<br \/>\nComo sugest\u00e3o, pesquise outras refer\u00eancias para a cria\u00e7\u00e3o de sua cena gr\u00e1fica. Tenha tamb\u00e9m em mente que este exerc\u00edcio ser\u00e1 a base para os exerc\u00edcios seguintes, que consistem na inclus\u00e3o de textura e ilumina\u00e7\u00e3o na cena.&#013;\n<\/li>\n<\/ol>\n<p>&#013;<\/p>\n<p \/>&#013;<\/p>\n<p><b>Exerc\u00edcio obrigat\u00f3rio (2012)<\/b><\/p>\n<p>&#013;<\/p>\n<ol type=\"1\">&#013;<\/p>\n<li>\n<p> Modele via OpenGL uma biblioteca. A cena deve possuir pelo menos os seguintes ambientes:<br \/>&#013;<br \/>\n&#8211; balc\u00e3o de atendimento;<br \/>&#013;<br \/>\n&#8211; sala(s) de estudo em grupo;<br \/>&#013;<br \/>\n&#8211; estante para livros; <br \/>&#013;<br \/>\nUse objetos s\u00f3lidos na modelagem. Use tamb\u00e9m teclas para permitir a intera\u00e7\u00e3o do usu\u00e1rio com algum objeto da cena, provocando sua transla\u00e7\u00e3o ou rota\u00e7\u00e3o, por exemplo. Tente fazer em escala (escolha as dimens\u00f5es). Inclua &#013;<br \/>\ntamb\u00e9m outro(s) elemento(s) a seu crit\u00e9rio (Outros ambientes podem ser inseridos, tais como mesas de estudo individual, terminais para consulta do acervo, guarda-volume e sala da administra\u00e7\u00e3o).<br \/>&#013;<br \/>\nComo sugest\u00e3o, pesquise refer\u00eancias reais para a cria\u00e7\u00e3o de sua cena gr\u00e1fica.<\/p>\n<p>&#013;\n<\/li>\n<\/ol>\n<p>&#013;<\/p>\n<p \/>&#013;<\/p>\n<p><b>Exerc\u00edcio obrigat\u00f3rio (2011)<\/b><\/p>\n<p>&#013;<\/p>\n<ol type=\"1\">&#013;<\/p>\n<li>\n<p> Modele via OpenGL uma pista de atletismo ou um hip\u00f3dromo. A cena deve possuir pelo menos mais dois ambientes, por exemplo:<br \/>&#013;<br \/>\n&#8211; Pista de atletismo: tribuna, arquibancada, vesti\u00e1rio;<br \/>&#013;<br \/>\n&#8211; Hip\u00f3dromo: tribuna, arquibancada, est\u00e1bulo, estacionamento, bilheteria; <br \/>&#013;<br \/>\nUse objetos s\u00f3lidos na modelagem. Use tamb\u00e9m teclas para permitir a intera\u00e7\u00e3o do usu\u00e1rio com algum objeto da cena, provocando sua transla\u00e7\u00e3o ou rota\u00e7\u00e3o, por exemplo. Tente fazer em escala (escolha as dimens\u00f5es). Inclua &#013;<br \/>\ntamb\u00e9m outro(s) elemento(s) a seu crit\u00e9rio (equipamentos, cron\u00f4metro digital na pista, cerca para \u00e1rea de arremesso de peso, p\u00f3dium etc).<br \/>&#013;<br \/>\nComo sugest\u00e3o, pesquise refer\u00eancias reais para a cria\u00e7\u00e3o de sua cena gr\u00e1fica.<\/p>\n<p>&#013;\n<\/li>\n<\/ol>\n<p>&#013;<\/p>\n<p \/>&#013;<\/p>\n<p><b>Exerc\u00edcio obrigat\u00f3rio (2010)<\/b><\/p>\n<p>&#013;<\/p>\n<ol type=\"1\">&#013;<\/p>\n<li>\n<p> Modele via OpenGL uma academia de gin\u00e1stica. A cena deve possuir pelo menos um ambiente que simule a recep\u00e7\u00e3o da academia e&#013;<br \/>\ndois aparelhos. Use teclas para permitir a intera\u00e7\u00e3o do usu\u00e1rio com algum objeto &#013;<br \/>\nda cena, provocando sua transla\u00e7\u00e3o ou rota\u00e7\u00e3o, por exemplo. Tente fazer em escala (escolha as dimens\u00f5es). Inclua &#013;<br \/>\ntamb\u00e9m outro(s) elemento(s) a seu crit\u00e9rio (outros equipamentos, sala de administra\u00e7\u00e3o, tatame etc).<\/p>\n<p>&#013;<\/p>\n<div class=\"FIGURE\">&#013;<\/p>\n<p><b><a name=\"FIG-ACAD\">Figura. Sugest\u00e3o de &#8220;academia&#8221; a ser modelada.<\/a><\/b><\/p>\n<p>&#013;<\/p>\n<p><img decoding=\"async\" src=\"academia_cg2010.jpg\" \/><\/p>\n<\/div>\n<p>&#013;\n<\/li>\n<\/ol>\n<p>&#013;<\/p>\n<p \/>&#013;<\/p>\n<p><b>Exerc\u00edcio obrigat\u00f3rio (2009)<\/b><\/p>\n<p>&#013;<\/p>\n<ol type=\"1\">&#013;<\/p>\n<li>\n<p> Modele via OpenGL uma cozinha conforme ilustra a Figura <a href=\"transformacoes-exercicios.html#FIG-COZINHA\">abaixo<\/a>. Use as teclas <b class=\"KEYCAP\">a A<\/b> para abrir e <b class=\"KEYCAP\">f F<\/b>, para &#013;<br \/>\n  fechar a porta do(s) arm\u00e1rio(s) ou a porta da janela americana, por exemplo. Tente fazer em escala (escolha as dimens\u00f5es). Inclua &#013;<br \/>\ntamb\u00e9m outro(s) elemento(s) a seu crit\u00e9rio (detalhamento de fog\u00e3o e geladeira, porta-pratos etc).<\/p>\n<p>&#013;<\/p>\n<div class=\"FIGURE\">&#013;<\/p>\n<p><b><a name=\"FIG-COZINHA\">Figura. Ilustra\u00e7\u00e3o de uma poss\u00edvel cozinha a ser modelada.<\/a><\/b><\/p>\n<p>&#013;<\/p>\n<p><img decoding=\"async\" src=\"cozinha.jpg\" \/><\/p>\n<\/div>\n<p>&#013;\n<\/li>\n<\/ol>\n<p>&#013;<\/p>\n<p \/>&#013;<\/p>\n<p><b>Exerc\u00edcio opcional (2009)<\/b><\/p>\n<p>&#013;<\/p>\n<ol type=\"1\">&#013;<\/p>\n<li>&#013;\n<p>Desenvolva um programa C\/OpenGL que desenhe um c\u00edrculo e um quadrado, lado a lado. O quadrado deve possuir lado igual a 10 e o c\u00edrculo, raio 5. Escolha &#013;<br \/>\n   as dimens\u00f5es da janela e outros par\u00e2metros que se fizerem necess\u00e1rios.&#013;<br \/>\n  <br \/>O programa deve permitir que o quadrado gire no sentido hor\u00e1rio em torno de seu ponto central, quando o usu\u00e1rio teclar a letra &#8220;h&#8221;, e no sentido &#013;<br \/>\n    anti-hor\u00e1rio quando for teclada a letra &#8220;a&#8221;. <\/p>\n<p>&#013;\n<\/li>\n<\/ol>\n<p>&#013;<\/p>\n<p \/>&#013;<\/p>\n<p><b>Exerc\u00edcio obrigat\u00f3rio (2008)<\/b><\/p>\n<p>&#013;<\/p>\n<ol type=\"1\">&#013;<\/p>\n<li>&#013;\n<p>A coordena\u00e7\u00e3o do curso de Tecnologia em Inform\u00e1tica tem um projeto de alterar a estrutura&#013;<br \/>\nf\u00edsica do laborat\u00f3rio de inform\u00e1tica 4 (novo <i>layout<\/i>), destinado ao desenvolvimento de trabalhos de conclus\u00e3o &#013;<br \/>\nde curso. Modele via OpenGL a \u00e1rea correspondente ao &#8220;novo LAB 4&#8221; (em escala, de prefer\u00eancia), &#013;<br \/>\ncontendo no m\u00ednimo:<br \/>&#013;<br \/>\n&#8211; bancadas para 20 computadores<br \/>&#013;<br \/>\n&#8211; 1 lousa branca <br \/>&#013;<br \/>\n&#8211; 1 porta (abertura lateral) <br \/>&#013;<br \/>\n&#8211; Suporte para retroprojetor no teto<br \/>&#013;\n<\/p>\n<p>Os objetos dever\u00e3o ser constru\u00eddos com fun\u00e7\u00f5es do tipo <i>solid<\/i> (veja exemplo abaixo de como passar&#013;<br \/>\ndo modelo <i>wire<\/i> para s\u00f3lido). Caso insira telhado\/cobertura no ambiente, permita que o mesmo seja habilitado\/desabilitado atrav\u00e9s&#013;<br \/>\nde uma tecla.<\/p>\n<p>&#013;\n<\/li>\n<\/ol>\n<p>&#013;<br \/>\n&#013;<\/p>\n<p><b>Exerc\u00edcio obrigat\u00f3rio (2007) <\/b><\/p>\n<p>&#013;<\/p>\n<ol type=\"1\">&#013;<\/p>\n<li>&#013;\n<p>Modele via OpenGL a \u00e1rea correspondente \u00e0 secretaria acad\u00eamica do CESET, contendo no m\u00ednimo:<br \/>&#013;<br \/>\n&#8211; balc\u00e3o de atendimento<br \/>&#013;<br \/>\n&#8211; 1 mural de avisos <br \/>&#013;<br \/>\n&#8211; porta (abertura lateral) <br \/>&#013;<br \/>\n&#8211; Algum objeto sobre o balc\u00e3o(ou escrivaninha)<br \/>&#013;<br \/>\n(Caso insira telhado\/cobertura no ambiente, permita que o mesmo seja habilitado\/desabilitado atrav\u00e9s&#013;<br \/>\nde uma tecla)&#013;\n<\/p>\n<\/li>\n<\/ol>\n<p>&#013;<br \/>\n&#013;<\/p>\n<p><b>Exerc\u00edcio obrigat\u00f3rio (2006) <\/b><\/p>\n<p>&#013;<\/p>\n<ol type=\"1\">&#013;<\/p>\n<li>&#013;\n<p>Modele via OpenGL um escrit\u00f3rio (ou parte dele) contendo, no m\u00ednimo:<br \/>&#013;<br \/>\n&#8211; uma escrivaninha<br \/>&#013;<br \/>\n&#8211; prateleiras para livros<br \/>&#013;<br \/>\n&#8211; Algum objeto sobre a prateleira (ou escrivaninha)<br \/>&#013;\n<\/p>\n<\/li>\n<\/ol>\n<p>&#013;<br \/>\n&#013;<br \/>\n&#013;<\/p>\n<p><b>Aquecimento (n\u00e3o \u00e9 necess\u00e1rio entregar)<\/b><\/p>\n<p>&#013;<\/p>\n<ol type=\"1\">&#013;<\/p>\n<li>&#013;\n<p><b>(aten\u00e7\u00e3o! O enunciado dessa quest\u00e3o explica a passagem de <i>wire<\/i> para s\u00f3lido)<\/b> Copie o programa <tt class=\"FILENAME\">braco-garra.c<\/tt> que voc\u00ea criou com o &#013;<br \/>\n  nome <tt class=\"FILENAME\">braco-garra-3d.c<\/tt>. Neste novo programa, modifique &#013;<br \/>\n  o trecho da fun\u00e7\u00e3o <tt class=\"FUNCTION\">main()<\/tt> que define o modo de &#013;<br \/>\n  apresenta\u00e7\u00e3o no GLUT. Use a seguinte chamada para a fun\u00e7\u00e3o de inicializa\u00e7\u00e3o: &#013;<br \/>\n  <tt class=\"FUNCTION\">glutInitDisplayMode (GLUT_DOUBLE | GLUT_RGB | &#013;<br \/>\n  GLUT_DEPTH)<\/tt>, pois inclui o tratamento de profundidade e de superf\u00edcies &#013;<br \/>\n  escondidas no OpenGL . Al\u00e9m disso, ao inv\u00e9s de utilizar chamadas \u00e0 fun\u00e7\u00e3o <tt class=\"FUNCTION\">glutWireCube()<\/tt>, inclua chamadas apenas \u00e0 fun\u00e7\u00e3o <tt class=\"FUNCTION\">glutSolidCube()<\/tt>, que cont\u00e9m os mesmos argumentos. &#013;<br \/>\n  Acrescente em <tt class=\"FUNCTION\">init()<\/tt> a chamada da fun\u00e7\u00e3o <tt class=\"FUNCTION\">glEnable(<tt class=\"PARAMETER\"><i>GL_DEPTH_TEST<\/i><\/tt>);<\/tt> de modo&#013;<br \/>\n que o tratamento de &#013;<br \/>\n  superf\u00edcies escondidas seja feito pelo OpenGL. Na fun\u00e7\u00e3o display, substitua <tt class=\"PARAMETER\"><i>glClear(GL_COLOR_BUFFER_BIT); <\/i><\/tt> por <tt class=\"PARAMETER\"><i>glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);<\/i><\/tt>.Utilize cores diferentes para &#013;<br \/>\n  cada uma das partes do bra\u00e7o, de modo a obter um modelo semelhante ao da <a href=\"transformacoes-exercicios.html#FIG-BRACO-3D\">Figura &#013;<br \/>\n  4-4<\/a>. <\/p>\n<p>&#013;<\/p>\n<div class=\"FIGURE\">&#013;<\/p>\n<p><b><a name=\"FIG-BRACO-3D\">Figura 4-4. Bra\u00e7o rob\u00f3tico 3D<\/a><\/b><\/p>\n<p>&#013;<\/p>\n<p><img decoding=\"async\" src=\"braco_cor.jpg\" \/><\/p>\n<\/div>\n<p>&#013;\n<\/li>\n<li>&#013;\n<p>Fa\u00e7a altera\u00e7\u00f5es no programa <a href=\"braco.c\" target=\"_top\" rel=\"noopener\"><tt class=\"FILENAME\">braco.c<\/tt><\/a> de modo a compreender o uso de&#013;<br \/>\n  transforma\u00e7\u00f5es geom\u00e9tricas. Implemente programas com um ou mais cubos (veja um exemplo em <b>4.2 Outros Programas Relacionados<\/b>), efetuando transla\u00e7\u00f5es, rota\u00e7\u00f5es e&#013;<br \/>\n  escalamentos em cubos espec\u00edficos. Ap\u00f3s ter o dom\u00ednio das transforma\u00e7\u00f5es (e o uso dos comandos &#013;<br \/>\n  <i>glPushMatrix()<\/i> e <i>glPopMatrix()<\/i>), siga &#013;<br \/>\n  resolvendo os pr\u00f3ximos exerc\u00edcios.<\/p>\n<p>&#013;<br \/>\n  &#013;\n  <\/li>\n<li>&#013;\n<p>Utilizando o programa <a href=\"braco.c\" target=\"_top\" rel=\"noopener\"><tt class=\"FILENAME\">braco.c<\/tt><\/a> como refer\u00eancia, implemente um &#013;<br \/>\n  programa <tt class=\"FILENAME\">braco-garra.c<\/tt>. Este programa dever\u00e1 &#013;<br \/>\n  acrescente ao bra\u00e7o rob\u00f3tico uma garra com tr\u00eas dedos, sendo um indicador, um &#013;<br \/>\n  m\u00e9dio e um polegar, como mostra a <a href=\"transformacoes-exercicios.html#FIG-BRACO-GARRA\">Figura &#013;<br \/>\n  4-3<\/a>. O usu\u00e1rio dever\u00e1 poder rotacionar o dedo indicador com as teclas <b class=\"KEYCAP\">i<\/b> e <b class=\"KEYCAP\">I<\/b>, nos sentidos hor\u00e1rio e &#013;<br \/>\n  anti-hor\u00e1rio. Da mesma forma, as teclas <b class=\"KEYCAP\">p<\/b> <b class=\"KEYCAP\">P<\/b> dever\u00e3o rotacionar o polegar, e teclas <b class=\"KEYCAP\">m<\/b> <b class=\"KEYCAP\">M<\/b>, o dedo m\u00e9dio do rob\u00f4.<\/p>\n<p>&#013;<\/p>\n<div class=\"FIGURE\">&#013;<\/p>\n<p><b><a name=\"FIG-BRACO-GARRA\">Figura 4-3. Bra\u00e7o rob\u00f3tico com garra<\/a><\/b><\/p>\n<p>&#013;<\/p>\n<p><img decoding=\"async\" src=\"braco-garra.jpeg\" \/><\/p>\n<\/div>\n<p>&#013;<br \/>\n  &#013;\n<\/li>\n<li>\n<p> Modele via OpenGL uma parte de um banheiro conforme mostra a Figura <a href=\"transformacoes-exercicios.html#FIG-BANHEIRO\">Figura &#013;<br \/>\n  4-5<\/a>. Use as teclas <b class=\"KEYCAP\">a A<\/b> para abrir e <b class=\"KEYCAP\">f F<\/b>, para &#013;<br \/>\n  fechar a porta do arm\u00e1rio que fica abaixo da pia do banheiro. Tente fazer em escala. Inclua &#013;<br \/>\ntamb\u00e9m outro(s) elemento(s) a seu crit\u00e9rio no programa anterior (vaso sanit\u00e1rio, arm\u00e1rio &#013;<br \/>\nao lado do espelho, janela, paredes, chuveiro e box etc).<\/p>\n<p>&#013;<\/p>\n<div class=\"FIGURE\">&#013;<\/p>\n<p><b><a name=\"FIG-BANHEIRO\">Figura 4-5. Abertura e fechamento da porta do arm\u00e1rio do banheiro.<\/a><\/b><\/p>\n<p>&#013;<\/p>\n<p><img decoding=\"async\" src=\"banheiro.jpg\" \/><\/p>\n<\/div>\n<p>&#013;<br \/>\n&#013;<br \/>\n&#013;<\/p>\n<div class=\"NAVFOOTER\">&#013;<\/p>\n<hr align=\"left\" width=\"100%\" \/>&#013;<\/p>\n<table cellspacing=\"0\" cellpadding=\"0\" width=\"100%\" border=\"0\">&#013;<\/p>\n<tbody>&#013;<\/p>\n<tr>&#013;<\/p>\n<td valign=\"top\" align=\"left\" width=\"33%\"><a href=\"transformacoes-outros.html\">Prev<\/a><\/td>\n<p>&#013;<\/p>\n<td valign=\"top\" align=\"middle\" width=\"34%\"><a href=\"index2006.html\">Home<\/a><\/td>\n<p>&#013;<\/p>\n<td valign=\"top\" align=\"right\" width=\"33%\"><a href=\"textura-simples.html\">Next<\/a><\/td>\n<\/tr>\n<p>&#013;<\/p>\n<tr>&#013;<\/p>\n<td valign=\"top\" align=\"left\" width=\"33%\">Outros programas relacionados<\/td>\n<p>&#013;<\/p>\n<td valign=\"top\" align=\"middle\" width=\"34%\"><a href=\"transformacoes.html\">Up<\/a><\/td>\n<p>&#013;<\/p>\n<td valign=\"top\" align=\"right\" width=\"33%\">Texturas e display lists<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/li>\n<\/ol>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>&#013; &#013; &#013; &#013; &#013; Introdu\u00e7\u00e3o \u00e0 computa\u00e7\u00e3o gr\u00e1fica com &#013; OpenGL &#013; &#013; Prev &#013; Cap\u00edtulo 4. Transforma\u00e7\u00f5es &#013; geom\u00e9tricas &#013; Next &#013; &#013; &#013; &#013; 4.4. Exerc\u00edcios &#013; &#013; Exerc\u00edcio obrigat\u00f3rio (2018) &#013; &#013; Modele via OpenGL uma cena gr\u00e1fica que contenha a simula\u00e7\u00e3o de um portal de entrada de uma cidade, contendo &hellip; <a href=\"https:\/\/wordpress.ft.unicamp.br\/magic\/exercicios-8\/\" class=\"more-link\">Continuar lendo <span class=\"screen-reader-text\">Exerc\u00edcios<\/span><\/a><\/p>\n","protected":false},"author":48,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-79","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.2 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Exerc\u00edcios - Marco Antonio Garcia de Carvalho, PhD<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/wordpress.ft.unicamp.br\/magic\/exercicios-8\/\" \/>\n<meta property=\"og:locale\" content=\"pt_BR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Exerc\u00edcios - Marco Antonio Garcia de Carvalho, PhD\" \/>\n<meta property=\"og:description\" content=\"&#013; &#013; &#013; &#013; &#013; Introdu\u00e7\u00e3o \u00e0 computa\u00e7\u00e3o gr\u00e1fica com &#013; OpenGL &#013; &#013; Prev &#013; Cap\u00edtulo 4. Transforma\u00e7\u00f5es &#013; geom\u00e9tricas &#013; Next &#013; &#013; &#013; &#013; 4.4. Exerc\u00edcios &#013; &#013; Exerc\u00edcio obrigat\u00f3rio (2018) &#013; &#013; Modele via OpenGL uma cena gr\u00e1fica que contenha a simula\u00e7\u00e3o de um portal de entrada de uma cidade, contendo &hellip; Continuar lendo Exerc\u00edcios\" \/>\n<meta property=\"og:url\" content=\"https:\/\/wordpress.ft.unicamp.br\/magic\/exercicios-8\/\" \/>\n<meta property=\"og:site_name\" content=\"Marco Antonio Garcia de Carvalho, PhD\" \/>\n<meta property=\"og:image\" content=\"http:\/\/mickey1.jpg\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. tempo de leitura\" \/>\n\t<meta name=\"twitter:data1\" content=\"10 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/wordpress.ft.unicamp.br\/magic\/exercicios-8\/\",\"url\":\"https:\/\/wordpress.ft.unicamp.br\/magic\/exercicios-8\/\",\"name\":\"Exerc\u00edcios - Marco Antonio Garcia de Carvalho, PhD\",\"isPartOf\":{\"@id\":\"https:\/\/wordpress.ft.unicamp.br\/magic\/#website\"},\"datePublished\":\"2022-03-23T22:08:49+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/wordpress.ft.unicamp.br\/magic\/exercicios-8\/#breadcrumb\"},\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/wordpress.ft.unicamp.br\/magic\/exercicios-8\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/wordpress.ft.unicamp.br\/magic\/exercicios-8\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/wordpress.ft.unicamp.br\/magic\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Exerc\u00edcios\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/wordpress.ft.unicamp.br\/magic\/#website\",\"url\":\"https:\/\/wordpress.ft.unicamp.br\/magic\/\",\"name\":\"Marco Antonio Garcia de Carvalho, PhD\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/wordpress.ft.unicamp.br\/magic\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"pt-BR\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Exerc\u00edcios - Marco Antonio Garcia de Carvalho, PhD","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/wordpress.ft.unicamp.br\/magic\/exercicios-8\/","og_locale":"pt_BR","og_type":"article","og_title":"Exerc\u00edcios - Marco Antonio Garcia de Carvalho, PhD","og_description":"&#013; &#013; &#013; &#013; &#013; Introdu\u00e7\u00e3o \u00e0 computa\u00e7\u00e3o gr\u00e1fica com &#013; OpenGL &#013; &#013; Prev &#013; Cap\u00edtulo 4. Transforma\u00e7\u00f5es &#013; geom\u00e9tricas &#013; Next &#013; &#013; &#013; &#013; 4.4. Exerc\u00edcios &#013; &#013; Exerc\u00edcio obrigat\u00f3rio (2018) &#013; &#013; Modele via OpenGL uma cena gr\u00e1fica que contenha a simula\u00e7\u00e3o de um portal de entrada de uma cidade, contendo &hellip; Continuar lendo Exerc\u00edcios","og_url":"https:\/\/wordpress.ft.unicamp.br\/magic\/exercicios-8\/","og_site_name":"Marco Antonio Garcia de Carvalho, PhD","og_image":[{"url":"mickey1.jpg","type":"","width":"","height":""}],"twitter_card":"summary_large_image","twitter_misc":{"Est. tempo de leitura":"10 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/wordpress.ft.unicamp.br\/magic\/exercicios-8\/","url":"https:\/\/wordpress.ft.unicamp.br\/magic\/exercicios-8\/","name":"Exerc\u00edcios - Marco Antonio Garcia de Carvalho, PhD","isPartOf":{"@id":"https:\/\/wordpress.ft.unicamp.br\/magic\/#website"},"datePublished":"2022-03-23T22:08:49+00:00","breadcrumb":{"@id":"https:\/\/wordpress.ft.unicamp.br\/magic\/exercicios-8\/#breadcrumb"},"inLanguage":"pt-BR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/wordpress.ft.unicamp.br\/magic\/exercicios-8\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/wordpress.ft.unicamp.br\/magic\/exercicios-8\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/wordpress.ft.unicamp.br\/magic\/"},{"@type":"ListItem","position":2,"name":"Exerc\u00edcios"}]},{"@type":"WebSite","@id":"https:\/\/wordpress.ft.unicamp.br\/magic\/#website","url":"https:\/\/wordpress.ft.unicamp.br\/magic\/","name":"Marco Antonio Garcia de Carvalho, PhD","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/wordpress.ft.unicamp.br\/magic\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pt-BR"}]}},"_links":{"self":[{"href":"https:\/\/wordpress.ft.unicamp.br\/magic\/wp-json\/wp\/v2\/pages\/79","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.ft.unicamp.br\/magic\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/wordpress.ft.unicamp.br\/magic\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.ft.unicamp.br\/magic\/wp-json\/wp\/v2\/users\/48"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.ft.unicamp.br\/magic\/wp-json\/wp\/v2\/comments?post=79"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.ft.unicamp.br\/magic\/wp-json\/wp\/v2\/pages\/79\/revisions"}],"wp:attachment":[{"href":"https:\/\/wordpress.ft.unicamp.br\/magic\/wp-json\/wp\/v2\/media?parent=79"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}