{"id":42,"date":"2022-03-23T22:08:49","date_gmt":"2022-03-23T22:08:49","guid":{"rendered":"https:\/\/wordpress.ft.unicamp.br\/magic\/animacao-2d\/"},"modified":"2022-03-23T22:08:49","modified_gmt":"2022-03-23T22:08:49","slug":"animacao-2d","status":"publish","type":"page","link":"https:\/\/wordpress.ft.unicamp.br\/magic\/animacao-2d\/","title":{"rendered":"Anima\u00e7\u00e3o 2D"},"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=\"modelos-iluminacao-exercicios.html\">Prev<\/a><\/td>\n<p>&#013;<\/p>\n<td valign=\"bottom\" align=\"middle\" width=\"80%\" \/>&#013;<\/p>\n<td valign=\"bottom\" align=\"right\" width=\"10%\"><a href=\"animacao-outros.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=\"CHAPTER\">&#013;<\/p>\n<h1><a name=\"ANIMACAO\">Cap\u00edtulo 7. Anima\u00e7\u00e3o 2D<\/a><\/h1>\n<p>&#013;<\/p>\n<div class=\"TOC\">&#013;<\/p>\n<dl>&#013;<\/p>\n<dt><b>\u00cdndice<\/b>&#013;<\/p>\n<dt>7.1. <a href=\"animacao-2D.html#animacao\">Descri\u00e7\u00e3o &#013;<br \/>\n  do programa <tt class=\"FILENAME\">anima_telejogo.c<\/tt><\/a>&#013;<\/p>\n<dt>7.2. <a href=\"animacao-outros.html\">Outros programas relacionados<\/a>&#013;<\/p>\n<dt>7.3. <a href=\"animacao-exercicios.html\">Exerc\u00edcios<\/a><\/dt>\n<\/dt>\n<\/dt>\n<\/dt>\n<\/dl>\n<\/div>\n<p>&#013;<\/p>\n<p>O prop\u00f3sito desta li\u00e7\u00e3o \u00e9 ilustrar os conceitos &#013;<br \/>\nenvolvidos na gera\u00e7\u00e3o de uma anima\u00e7\u00e3o no OpenGL. Neste caso, anima\u00e7\u00e3o \u00e9 feita em&#013;<br \/>\n2D e trata-se de um antigo jogo da d\u00e9cada de 80, chamado de Telejogo, como ilustrado&#013;<br \/>\nna <a href=\"animacao-2D.html#FIG-ANIMACAO\">Figura 7-1<\/a>. <\/p>\n<p>&#013;<\/p>\n<p>O jogo consiste em um campo de futebol com dois jogadores, uma bola e duas traves (esses &#013;<br \/>\nelementos n\u00e3o est\u00e3o todos presentes na figura abaixo). Os jogadores movimentam-se na&#013;<br \/>\nhorizontal e vertical; a bola movimenta-se em diversas &#013;<br \/>\ndire\u00e7\u00f5es (n\u00e3o implementados). O objetivo do jogo, logicamente, \u00e9 marcar gol.<\/p>\n<p>&#013;<\/p>\n<div class=\"FIGURE\">&#013;<\/p>\n<p><b><a name=\"FIG-ANIMACAO\">Figura 7-1. Um frame do Telejogo.<\/a><\/b><\/p>\n<p>&#013;<\/p>\n<p><img decoding=\"async\" src=\"telejogo.jpg\" \/><\/p>\n<\/div>\n<p>&#013;<\/p>\n<p>O programa usado para modelar esta cena \u00e9 mostrado no <a href=\"animacao-2D.html#EXAMPLE-ANIMACAO\">Exemplo &#013;<br \/>\n7-1<\/a>. A \u00fanica tecla habilitada \u00e9 a <b class=\"KEYCAP\">ESC<\/b>, utilizada para&#013;<br \/>\nfinalizar o programa. <\/p>\n<p>&#013;<\/p>\n<div class=\"EXAMPLE\">&#013;<\/p>\n<p><b><a name=\"EXAMPLE-ANIMACAO\">Exemplo 7-1. programa <\/a><a href=\"anima_telejogo.c\" target=\"_top\" rel=\"noopener\"><tt class=\"FILENAME\">anima_telejogo.c<\/tt><\/a><\/b><\/p>\n<p>&#013;<\/p>\n<table width=\"100%\" bgcolor=\"#e0e0e0\" border=\"0\">&#013;<\/p>\n<tbody>&#013;<\/p>\n<tr>&#013;<\/p>\n<td>\n<pre class=\"PROGRAMLISTING\">&#013;\n\/* programa TELEJOGO *\/&#013;\n\/* Prof. Marco Antonio G. de Carvalho, UNICAMP-2006 *\/&#013;\n\/* EXEMPLO DE ANIMACAO *\/&#013;\n&#013;\n#include &lt;stdlib.h&gt;&#013;\n#include &lt;GL\/glut.h&gt;&#013;\n&#013;\nGLint movebola=0;&#013;\nGLint direcao=1;&#013;\n&#013;\nvoid init(void);&#013;\nvoid display(void);&#013;\nvoid bola(int passo);&#013;\nvoid keyboard(unsigned char key, int x, int y);&#013;\n&#013;\nint main(int argc, char** argv){&#013;\n  glutInit(&amp;argc, argv);&#013;\n\/\/  glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB);&#013;\n  glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB);&#013;\n  glutInitWindowSize (600, 400);&#013;\n  glutInitWindowPosition (100, 100); &#013;\n  glutCreateWindow (\"TELEJOGO\");&#013;\n  init();&#013;\n  glutDisplayFunc(display);&#013;\n  glutTimerFunc(10,bola,1);&#013;\n  glutKeyboardFunc(keyboard);&#013;\n  \/\/glutMouseFunc(mouse);&#013;\n  glutMainLoop();&#013;\n  return 0;&#013;\n}&#013;\n&#013;\nvoid init(void){&#013;\n  glClearColor(0.0, 0.0, 0.0, 0.0);&#013;\n  glOrtho (0, 600, 0, 400, -1 ,1);&#013;\n}&#013;\n&#013;\nvoid display(void){&#013;\n  glClear(GL_COLOR_BUFFER_BIT);&#013;\n&#013;\n \/\/ glPolygonMode(GL_BACK, GL_LINE);&#013;\n  glColor3f(1.0, 1.0, 1.0);&#013;\n  glLineWidth(15.0);&#013;\n  glBegin(GL_LINE_LOOP);&#013;\n  glVertex2i(2,2);  glVertex2i(599,2);&#013;\n  glVertex2i(599,399); glVertex2i(2,399);&#013;\n  glEnd();&#013;\n&#013;\n  glBegin(GL_LINES);&#013;\n  glVertex2i(100,190);  glVertex2i(100,240);&#013;\n  glVertex2i(500,190);  glVertex2i(500,240);&#013;\n  glEnd();&#013;\n&#013;\n  glPointSize(15.0);&#013;\n  glBegin(GL_POINTS);&#013;\n  glVertex2i(movebola+200,210);&#013;\n  glEnd();&#013;\n&#013;\n\/\/  glFlush();&#013;\n  glutSwapBuffers();&#013;\n }&#013;\n&#013;\nvoid keyboard(unsigned char key, int x, int y){&#013;\n  switch (key) {&#013;\n  case 27:&#013;\n\texit(0);&#013;\n\tbreak;&#013;\n  }&#013;\n}&#013;\n&#013;\nvoid bola(int passo)&#013;\n{&#013;\nif(direcao==1)&#013;\n{&#013;\nmovebola += 1;&#013;\nif(movebola==290) direcao = 0;&#013;\n}&#013;\n&#013;\nelse&#013;\n{&#013;\nmovebola -= 1;&#013;\nif(movebola==-90) direcao = 1;&#013;\n}&#013;\nglutPostRedisplay();&#013;\nglutTimerFunc(10,bola, 1);&#013;\n&#013;\n}<\/pre>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<p>&#013;<\/p>\n<p>Para compilar e executar o programa <a href=\"anima_telejogo.c\" target=\"_top\" rel=\"noopener\"><tt class=\"FILENAME\">anima_telejogo.c<\/tt><\/a>, salve-o juntamente com o &#013;<br \/>\narquivo <a href=\"Makefile\" target=\"_top\" rel=\"noopener\">Makefile<\/a> em um diret\u00f3rio e execute a seguinte seq\u00fc\u00eancia de &#013;<br \/>\ncomandos:<\/p>\n<p>&#013;<\/p>\n<table width=\"100%\" bgcolor=\"#e0e0e0\" border=\"0\">&#013;<\/p>\n<tbody>&#013;<\/p>\n<tr>&#013;<\/p>\n<td>\n<pre class=\"SCREEN\"><tt class=\"PROMPT\">$<\/tt> <b class=\"COMMAND\">make<\/b> <span class=\"OPTION\">iluminacao<\/span>&#013;\n<tt class=\"PROMPT\">$<\/tt> <b class=\"COMMAND\">.\/anima_telejogo<\/b><\/pre>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>&#013;<\/p>\n<div class=\"SECT1\">&#013;<\/p>\n<h1 class=\"SECT1\"><a name=\"MODELOS-ILUMINACAO-DESCRICAO\">7.1. Descri\u00e7\u00e3o do programa &#013;<br \/>\n<tt class=\"FILENAME\">anima_telejogo.c<\/tt><\/a><\/h1>\n<p>&#013;<br \/>\n&#013;<\/p>\n<div class=\"INFORMALEXAMPLE\">&#013;<\/p>\n<p>A id\u00e9ia central da anima\u00e7\u00e3o neste programa consiste em criar um la\u00e7o que altere as &#013;<br \/>\ntransforma\u00e7\u00f5es geom\u00e9tricas presentes na fun\u00e7\u00e3o <tt class=\"FUNCTION\">display<\/tt> . Para isso, \u00e9 utilizada a fun\u00e7\u00e3o&#013;<br \/>\n<tt class=\"FUNCTION\">glutTimerFunc()<\/tt> , cuja sintaxe \u00e9 dada a seguir.<\/p>\n<p>&#013;<\/p>\n<p><tt class=\"FUNCTION\">glutTimerFunc(unsigned int msecs, void (*func)(int value), int value)<\/tt>&#013;<br \/>\nAssocia uma fun\u00e7\u00e3o de <i>callback<\/i> que deve ser executada de tempos em tempos, definido pelo&#013;<br \/>\nprimeiro par\u00e2metro <i>msecs<\/i>; o par\u00e2metro <i>func<\/i> corresponde ao nome da fun\u00e7\u00e3o que deve ser &#013;<br \/>\nchamada e o par\u00e2metro <i>value<\/i> consiste em um valor inteiro definido pelo usu\u00e1rio, passado&#013;<br \/>\npara a fun\u00e7\u00e3o <i>func<\/i> e que pode ou n\u00e3o ser utilizado por esta.<\/p>\n<p>&#013;<\/p>\n<p>A linha de programa<\/p>\n<p>&#013;<br \/>\n&#013;<\/p>\n<table width=\"100%\" bgcolor=\"#e0e0e0\" border=\"0\">&#013;<\/p>\n<tbody>&#013;<\/p>\n<tr>&#013;<\/p>\n<td>\n<pre class=\"PROGRAMLISTING\">  glutTimerFunc(10,bola,1);&#013;\n<\/pre>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>&#013;<\/p>\n<p \/><\/div>\n<p>&#013;<\/p>\n<p>Define o per\u00edodo entre a execu\u00e7\u00e3o da chamada da fun\u00e7\u00e3o <tt class=\"FUNCTION\">bola<\/tt> de 10msecs e passa&#013;<br \/>\npara a fun\u00e7\u00e3o o valor inteiro 1. Esse valor poder\u00e1 (ou n\u00e3o) ser utilizado como o &#013;<br \/>\nincremento (passo) na posi\u00e7\u00e3o da bola do jogo.<\/p>\n<p>&#013;<\/p>\n<div class=\"INFORMALEXAMPLE\">&#013;<\/p>\n<p \/>&#013;<\/p>\n<table width=\"100%\" bgcolor=\"#e0e0e0\" border=\"0\">&#013;<\/p>\n<tbody>&#013;<\/p>\n<tr>&#013;<\/p>\n<td>\n<pre class=\"PROGRAMLISTING\">if(direcao==1)&#013;\n{&#013;\nmovebola += 1;&#013;\nif(movebola==290) direcao = 0;&#013;\n}<\/pre>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>&#013;<\/p>\n<p \/><\/div>\n<p>&#013;<\/p>\n<p>A vari\u00e1vel <i>movebola<\/i> controla at\u00e9 que posi\u00e7\u00e3o mais a esquerda ou mais a direita a bola &#013;<br \/>\npode se locomover, enquanto que a vari\u00e1vel <i>direcao<\/i> controla a mudan\u00e7a de dire\u00e7\u00e3o quando&#013;<br \/>\na bola atinge esses limites laterais, incrementando ou decrementado a vari\u00e1vel <i>movebola<\/i>.<\/p>\n<p>&#013;<\/p>\n<div class=\"NAVFOOTER\">&#013;<\/p>\n<hr align=\"left\" width=\"100%\" \/>&#013;<br \/>\n&#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=\"modelos-iluminacao.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=\"animacao-outros.html\">Next<\/a><\/td>\n<\/tr>\n<p>&#013;<\/p>\n<tr>&#013;<\/p>\n<td valign=\"top\" align=\"left\" width=\"33%\">Exerc\u00edcios<\/td>\n<p>&#013;<\/p>\n<td valign=\"top\" align=\"middle\" width=\"34%\">\u00a0<\/td>\n<p>&#013;<\/p>\n<td valign=\"top\" align=\"right\" width=\"33%\">Outros Programas relacionados<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\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; &#013; Next &#013; &#013; &#013; &#013; Cap\u00edtulo 7. Anima\u00e7\u00e3o 2D &#013; &#013; &#013; \u00cdndice&#013; 7.1. Descri\u00e7\u00e3o &#013; do programa anima_telejogo.c&#013; 7.2. Outros programas relacionados&#013; 7.3. Exerc\u00edcios &#013; O prop\u00f3sito desta li\u00e7\u00e3o \u00e9 ilustrar os conceitos &#013; envolvidos na gera\u00e7\u00e3o &hellip; <a href=\"https:\/\/wordpress.ft.unicamp.br\/magic\/animacao-2d\/\" class=\"more-link\">Continuar lendo <span class=\"screen-reader-text\">Anima\u00e7\u00e3o 2D<\/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-42","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Anima\u00e7\u00e3o 2D - 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\/animacao-2d\/\" \/>\n<meta property=\"og:locale\" content=\"pt_BR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Anima\u00e7\u00e3o 2D - 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; &#013; Next &#013; &#013; &#013; &#013; Cap\u00edtulo 7. Anima\u00e7\u00e3o 2D &#013; &#013; &#013; \u00cdndice&#013; 7.1. Descri\u00e7\u00e3o &#013; do programa anima_telejogo.c&#013; 7.2. Outros programas relacionados&#013; 7.3. Exerc\u00edcios &#013; O prop\u00f3sito desta li\u00e7\u00e3o \u00e9 ilustrar os conceitos &#013; envolvidos na gera\u00e7\u00e3o &hellip; Continuar lendo Anima\u00e7\u00e3o 2D\" \/>\n<meta property=\"og:url\" content=\"https:\/\/wordpress.ft.unicamp.br\/magic\/animacao-2d\/\" \/>\n<meta property=\"og:site_name\" content=\"Marco Antonio Garcia de Carvalho, PhD\" \/>\n<meta property=\"og:image\" content=\"http:\/\/telejogo.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=\"3 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\\\/animacao-2d\\\/\",\"url\":\"https:\\\/\\\/wordpress.ft.unicamp.br\\\/magic\\\/animacao-2d\\\/\",\"name\":\"Anima\u00e7\u00e3o 2D - 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\\\/animacao-2d\\\/#breadcrumb\"},\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/wordpress.ft.unicamp.br\\\/magic\\\/animacao-2d\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/wordpress.ft.unicamp.br\\\/magic\\\/animacao-2d\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/wordpress.ft.unicamp.br\\\/magic\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Anima\u00e7\u00e3o 2D\"}]},{\"@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":"Anima\u00e7\u00e3o 2D - 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\/animacao-2d\/","og_locale":"pt_BR","og_type":"article","og_title":"Anima\u00e7\u00e3o 2D - 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; &#013; Next &#013; &#013; &#013; &#013; Cap\u00edtulo 7. Anima\u00e7\u00e3o 2D &#013; &#013; &#013; \u00cdndice&#013; 7.1. Descri\u00e7\u00e3o &#013; do programa anima_telejogo.c&#013; 7.2. Outros programas relacionados&#013; 7.3. Exerc\u00edcios &#013; O prop\u00f3sito desta li\u00e7\u00e3o \u00e9 ilustrar os conceitos &#013; envolvidos na gera\u00e7\u00e3o &hellip; Continuar lendo Anima\u00e7\u00e3o 2D","og_url":"https:\/\/wordpress.ft.unicamp.br\/magic\/animacao-2d\/","og_site_name":"Marco Antonio Garcia de Carvalho, PhD","og_image":[{"url":"telejogo.jpg","type":"","width":"","height":""}],"twitter_card":"summary_large_image","twitter_misc":{"Est. tempo de leitura":"3 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/wordpress.ft.unicamp.br\/magic\/animacao-2d\/","url":"https:\/\/wordpress.ft.unicamp.br\/magic\/animacao-2d\/","name":"Anima\u00e7\u00e3o 2D - 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\/animacao-2d\/#breadcrumb"},"inLanguage":"pt-BR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/wordpress.ft.unicamp.br\/magic\/animacao-2d\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/wordpress.ft.unicamp.br\/magic\/animacao-2d\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/wordpress.ft.unicamp.br\/magic\/"},{"@type":"ListItem","position":2,"name":"Anima\u00e7\u00e3o 2D"}]},{"@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\/42","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=42"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.ft.unicamp.br\/magic\/wp-json\/wp\/v2\/pages\/42\/revisions"}],"wp:attachment":[{"href":"https:\/\/wordpress.ft.unicamp.br\/magic\/wp-json\/wp\/v2\/media?parent=42"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}