{"id":4557,"date":"2022-08-06T18:04:06","date_gmt":"2022-08-06T21:04:06","guid":{"rendered":"https:\/\/www.blogs.unicamp.br\/zero\/?p=4557"},"modified":"2023-08-26T19:43:35","modified_gmt":"2023-08-26T22:43:35","slug":"trigonometrando-em-heretic","status":"publish","type":"post","link":"https:\/\/www.blogs.unicamp.br\/zero\/4557\/","title":{"rendered":"Trigonometrando em Heretic"},"content":{"rendered":"\n<p class=\" eplus-wrapper\">Heretic foi um dos primeiros jogos de computador com que tive contato. Lembro que minha tia ganhou um Windows 95 na \u00e9poca que isso era algo revolucion\u00e1rio, e tinhamos um CD com v\u00e1rios jogos demo, dentre eles o Heretic. Esse \u00e9 um jogo do g\u00eanero FPS, aqueles que temos vis\u00e3o em primeira pessoa e geralmente s\u00f3 vemos nossa arma\/m\u00e3o, mas na \u00e9poca eu ainda n\u00e3o tinha a destreza necess\u00e1ria para mover o personagem, ent\u00e3o ficava apenas no bot\u00e3o de atirar e minha tia controlava o personagem. Mas atirar em monstros era uma divers\u00e3o secund\u00e1ria, o que esse jogo tinha de emocionante eram as passagens secretas e as armadilhas. Pense que voc\u00ea esta andando num corredor e encontra uma arma poderosa&#8230; mas assim que voc\u00ea pega a arma, as luzes se apagam e come\u00e7amos a ouvir monstros ao seu redor (logo em seguida come\u00e7amos a perder pontos de vida), ou o teto come\u00e7a a descer em nossas cabe\u00e7as &#8230; mas tamb\u00e9m acontecia de passarmos por locais mon\u00f3tonos e sem nada de interessante&#8230; provavelmente havia ali uma passagem secreta que a sua falta de curiosidade ignorou. Enfim, esse \u00e9 um jogo bem divertido, que te p\u00f5e pra pensar e te d\u00e1 alguns picos de desespero e medo, principalmente quando come\u00e7a a ouvir os monstros por perto e tem pouca muni\u00e7\u00e3o&#8230; Ao final de cada fase mostrava quantos monstros tinham na fase, quantos itens e quantas passagens secretas, e quantos de cada voc\u00ea descobriu. Isso dava uma s\u00e9ria frustra\u00e7\u00e3o de sentirmos que deixamos passar alguma coisa, e meio que refaz\u00edamos todo o itiner\u00e1rio buscando onde poderia estar a passagem secreta que faltava ser descoberta.<\/p>\n\n\n\n<p class=\" eplus-wrapper\">Contudo, uma quest\u00e3o que temos em comum \u00e0 maioria dos jogos desse g\u00eanero, o fato de podermos ajustar a mira do personagem do valor m\u00e1ximo, mas o jogo n\u00e3o nos diz qual \u00e9 esta angula\u00e7\u00e3o. Podemos simplesmente aceitar que esta informa\u00e7\u00e3o n\u00e3o seja oferecida aos jogadores, ou ent\u00e3o, encontrar em elementos internos ao pr\u00f3prio gameplay, meios de calcular esse valor. Claro que escolhemos a segunda op\u00e7\u00e3o :).<\/p>\n\n\n\n<p class=\" eplus-wrapper\">Vamos primeiro desenhar nossa situa\u00e7\u00e3o. Temos o personagem com sua arma apontada na altura padr\u00e3o:<\/p>\n\n\n\n<figure class=\" wp-block-image aligncenter size-full eplus-wrapper\"><img fetchpriority=\"high\" decoding=\"async\" width=\"614\" height=\"360\" src=\"https:\/\/www.blogs.unicamp.br\/zero\/wp-content\/uploads\/sites\/187\/2022\/08\/gnome-mpv-shot0001.jpg\" alt=\"\" class=\"wp-image-4558\" srcset=\"https:\/\/www.blogs.unicamp.br\/zero\/wp-content\/uploads\/sites\/187\/2022\/08\/gnome-mpv-shot0001.jpg 614w, https:\/\/www.blogs.unicamp.br\/zero\/wp-content\/uploads\/sites\/187\/2022\/08\/gnome-mpv-shot0001-300x176.jpg 300w, https:\/\/www.blogs.unicamp.br\/zero\/wp-content\/uploads\/sites\/187\/2022\/08\/gnome-mpv-shot0001-500x293.jpg 500w\" sizes=\"(max-width: 614px) 100vw, 614px\" \/><\/figure>\n\n\n\n<p class=\" eplus-wrapper\">Quando ele dispara, o tiro segue em linha reta at\u00e9 o alvo.<\/p>\n\n\n\n<figure class=\" wp-block-image aligncenter size-full eplus-wrapper\"><img decoding=\"async\" width=\"614\" height=\"360\" src=\"https:\/\/www.blogs.unicamp.br\/zero\/wp-content\/uploads\/sites\/187\/2022\/08\/gnome-mpv-shot0002.jpg\" alt=\"\" class=\"wp-image-4559\" srcset=\"https:\/\/www.blogs.unicamp.br\/zero\/wp-content\/uploads\/sites\/187\/2022\/08\/gnome-mpv-shot0002.jpg 614w, https:\/\/www.blogs.unicamp.br\/zero\/wp-content\/uploads\/sites\/187\/2022\/08\/gnome-mpv-shot0002-300x176.jpg 300w, https:\/\/www.blogs.unicamp.br\/zero\/wp-content\/uploads\/sites\/187\/2022\/08\/gnome-mpv-shot0002-500x293.jpg 500w\" sizes=\"(max-width: 614px) 100vw, 614px\" \/><\/figure>\n\n\n\n<p class=\" eplus-wrapper\">Por outro lado, podemos ajustar a mira at\u00e9 a \u00e2ngula\u00e7\u00e3o superior m\u00e1xima.<\/p>\n\n\n\n<figure class=\" wp-block-image aligncenter size-full eplus-wrapper\"><img decoding=\"async\" width=\"614\" height=\"360\" src=\"https:\/\/www.blogs.unicamp.br\/zero\/wp-content\/uploads\/sites\/187\/2022\/08\/gnome-mpv-shot0021.jpg\" alt=\"\" class=\"wp-image-4561\" srcset=\"https:\/\/www.blogs.unicamp.br\/zero\/wp-content\/uploads\/sites\/187\/2022\/08\/gnome-mpv-shot0021.jpg 614w, https:\/\/www.blogs.unicamp.br\/zero\/wp-content\/uploads\/sites\/187\/2022\/08\/gnome-mpv-shot0021-300x176.jpg 300w, https:\/\/www.blogs.unicamp.br\/zero\/wp-content\/uploads\/sites\/187\/2022\/08\/gnome-mpv-shot0021-500x293.jpg 500w\" sizes=\"(max-width: 614px) 100vw, 614px\" \/><\/figure>\n\n\n\n<p class=\" eplus-wrapper\">Quando ele dispara, o tiro segue em linha reta at\u00e9 o alvo (\u00e9 importante ressaltar aqui, que a trajet\u00f3ria n\u00e3o \u00e9 parab\u00f3lica).<\/p>\n\n\n\n<figure class=\" wp-block-image aligncenter size-full eplus-wrapper\"><img loading=\"lazy\" decoding=\"async\" width=\"614\" height=\"360\" src=\"https:\/\/www.blogs.unicamp.br\/zero\/wp-content\/uploads\/sites\/187\/2022\/08\/gnome-mpv-shot0003.jpg\" alt=\"\" class=\"wp-image-4560\" srcset=\"https:\/\/www.blogs.unicamp.br\/zero\/wp-content\/uploads\/sites\/187\/2022\/08\/gnome-mpv-shot0003.jpg 614w, https:\/\/www.blogs.unicamp.br\/zero\/wp-content\/uploads\/sites\/187\/2022\/08\/gnome-mpv-shot0003-300x176.jpg 300w, https:\/\/www.blogs.unicamp.br\/zero\/wp-content\/uploads\/sites\/187\/2022\/08\/gnome-mpv-shot0003-500x293.jpg 500w\" sizes=\"(max-width: 614px) 100vw, 614px\" \/><\/figure>\n\n\n\n<p class=\" eplus-wrapper\">Ou seja, o \u00e2ngulo que procuramos pode ser expresso a partir de um tri\u00e2ngulo ret\u00e2ngulo, com lado oposto z (dado pela diferen\u00e7a as alturas entre os dois disparos), e lado adjacente y (igual a dist\u00e2ncia do personagem at\u00e9 o alvo). Conhecendo estes valores, podemos dizer que a tangente esse \u00e2ngulo x ser\u00e1 z\/x.<\/p>\n\n\n\n<figure class=\" wp-block-image aligncenter size-full eplus-wrapper\"><img loading=\"lazy\" decoding=\"async\" width=\"614\" height=\"360\" src=\"https:\/\/www.blogs.unicamp.br\/zero\/wp-content\/uploads\/sites\/187\/2022\/08\/gnome-mpv-shot0004.jpg\" alt=\"\" class=\"wp-image-4562\" srcset=\"https:\/\/www.blogs.unicamp.br\/zero\/wp-content\/uploads\/sites\/187\/2022\/08\/gnome-mpv-shot0004.jpg 614w, https:\/\/www.blogs.unicamp.br\/zero\/wp-content\/uploads\/sites\/187\/2022\/08\/gnome-mpv-shot0004-300x176.jpg 300w, https:\/\/www.blogs.unicamp.br\/zero\/wp-content\/uploads\/sites\/187\/2022\/08\/gnome-mpv-shot0004-500x293.jpg 500w\" sizes=\"(max-width: 614px) 100vw, 614px\" \/><\/figure>\n\n\n\n<p class=\" eplus-wrapper\">Bom, conhecendo o suficiente do jogo, podemos encontrar esses valores. No caso, essa parede \u00e9 bem prop\u00edcia para o que queremos, pois ela pare toda formaad por tri\u00e2ngulos ret\u00e2ngulos is\u00f3sceles (ou quase).<\/p>\n\n\n\n<figure class=\" wp-block-image aligncenter size-full eplus-wrapper\"><img loading=\"lazy\" decoding=\"async\" width=\"614\" height=\"360\" src=\"https:\/\/www.blogs.unicamp.br\/zero\/wp-content\/uploads\/sites\/187\/2022\/08\/gnome-mpv-shot0005.jpg\" alt=\"\" class=\"wp-image-4563\" srcset=\"https:\/\/www.blogs.unicamp.br\/zero\/wp-content\/uploads\/sites\/187\/2022\/08\/gnome-mpv-shot0005.jpg 614w, https:\/\/www.blogs.unicamp.br\/zero\/wp-content\/uploads\/sites\/187\/2022\/08\/gnome-mpv-shot0005-300x176.jpg 300w, https:\/\/www.blogs.unicamp.br\/zero\/wp-content\/uploads\/sites\/187\/2022\/08\/gnome-mpv-shot0005-500x293.jpg 500w\" sizes=\"(max-width: 614px) 100vw, 614px\" \/><\/figure>\n\n\n\n<p class=\" eplus-wrapper\">Verificando onde o disparo com angula\u00e7\u00e3o m\u00e1xima atinge, podemos ter uma ideia da diferen\u00e7a de alturas.<\/p>\n\n\n\n<figure class=\" wp-block-image aligncenter size-full eplus-wrapper\"><img loading=\"lazy\" decoding=\"async\" width=\"614\" height=\"360\" src=\"https:\/\/www.blogs.unicamp.br\/zero\/wp-content\/uploads\/sites\/187\/2022\/08\/gnome-mpv-shot0006.jpg\" alt=\"\" class=\"wp-image-4564\" srcset=\"https:\/\/www.blogs.unicamp.br\/zero\/wp-content\/uploads\/sites\/187\/2022\/08\/gnome-mpv-shot0006.jpg 614w, https:\/\/www.blogs.unicamp.br\/zero\/wp-content\/uploads\/sites\/187\/2022\/08\/gnome-mpv-shot0006-300x176.jpg 300w, https:\/\/www.blogs.unicamp.br\/zero\/wp-content\/uploads\/sites\/187\/2022\/08\/gnome-mpv-shot0006-500x293.jpg 500w\" sizes=\"(max-width: 614px) 100vw, 614px\" \/><\/figure>\n\n\n\n<p class=\" eplus-wrapper\">Mas ainda falta pensarmos em uma unidade de medida para nossos c\u00e1lculos&#8230; para isso, vamos usar os passsos do personagem. Isso \u00e9, o quanto o personagem se move ao menor dos toques no teclado. Assim, com 7 passinhos passamos por completo o trecho que corresponde a essa parede com \u00e1gua. Escolhi esse trecho especificamente por conta disso, pois d\u00e1 pra perceber a mudan\u00e7a de altura na hora que o personagem desce pra \u00e1gua, e na hora que sai da \u00e1gua.<\/p>\n\n\n\n<figure class=\" wp-block-image aligncenter size-full eplus-wrapper\"><img loading=\"lazy\" decoding=\"async\" width=\"614\" height=\"360\" src=\"https:\/\/www.blogs.unicamp.br\/zero\/wp-content\/uploads\/sites\/187\/2022\/08\/gnome-mpv-shot0007.jpg\" alt=\"\" class=\"wp-image-4565\" srcset=\"https:\/\/www.blogs.unicamp.br\/zero\/wp-content\/uploads\/sites\/187\/2022\/08\/gnome-mpv-shot0007.jpg 614w, https:\/\/www.blogs.unicamp.br\/zero\/wp-content\/uploads\/sites\/187\/2022\/08\/gnome-mpv-shot0007-300x176.jpg 300w, https:\/\/www.blogs.unicamp.br\/zero\/wp-content\/uploads\/sites\/187\/2022\/08\/gnome-mpv-shot0007-500x293.jpg 500w\" sizes=\"(max-width: 614px) 100vw, 614px\" \/><\/figure>\n\n\n\n<p class=\" eplus-wrapper\">Assim, para facilitar as contas, fiz 10 passos para tr\u00e1s.<\/p>\n\n\n\n<figure class=\" wp-block-image aligncenter size-full eplus-wrapper\"><img loading=\"lazy\" decoding=\"async\" width=\"614\" height=\"360\" src=\"https:\/\/www.blogs.unicamp.br\/zero\/wp-content\/uploads\/sites\/187\/2022\/08\/gnome-mpv-shot0008.jpg\" alt=\"\" class=\"wp-image-4566\" srcset=\"https:\/\/www.blogs.unicamp.br\/zero\/wp-content\/uploads\/sites\/187\/2022\/08\/gnome-mpv-shot0008.jpg 614w, https:\/\/www.blogs.unicamp.br\/zero\/wp-content\/uploads\/sites\/187\/2022\/08\/gnome-mpv-shot0008-300x176.jpg 300w, https:\/\/www.blogs.unicamp.br\/zero\/wp-content\/uploads\/sites\/187\/2022\/08\/gnome-mpv-shot0008-500x293.jpg 500w\" sizes=\"(max-width: 614px) 100vw, 614px\" \/><\/figure>\n\n\n\n<p class=\" eplus-wrapper\">Ent\u00e3o, cada metade de um dos tri\u00e2ngulos ret\u00e2ngulos, que tamb\u00e9 ser\u00e1 um tri\u00e2ngulo ret\u00e2ngulo, ter\u00e1 altura e base iguais a 6\/7 passos.<\/p>\n\n\n\n<figure class=\" wp-block-image aligncenter size-full eplus-wrapper\"><img loading=\"lazy\" decoding=\"async\" width=\"614\" height=\"360\" src=\"https:\/\/www.blogs.unicamp.br\/zero\/wp-content\/uploads\/sites\/187\/2022\/08\/gnome-mpv-shot0010.jpg\" alt=\"\" class=\"wp-image-4567\" srcset=\"https:\/\/www.blogs.unicamp.br\/zero\/wp-content\/uploads\/sites\/187\/2022\/08\/gnome-mpv-shot0010.jpg 614w, https:\/\/www.blogs.unicamp.br\/zero\/wp-content\/uploads\/sites\/187\/2022\/08\/gnome-mpv-shot0010-300x176.jpg 300w, https:\/\/www.blogs.unicamp.br\/zero\/wp-content\/uploads\/sites\/187\/2022\/08\/gnome-mpv-shot0010-500x293.jpg 500w\" sizes=\"(max-width: 614px) 100vw, 614px\" \/><\/figure>\n\n\n\n<p class=\" eplus-wrapper\">Por fim, estimamos a diferen\u00e7a da altura dos disparos a partir destes tri\u00e2ngulos, concluindo sua altura deva ser 18\/7 passos.<\/p>\n\n\n\n<figure class=\" wp-block-image aligncenter size-full eplus-wrapper\"><img loading=\"lazy\" decoding=\"async\" width=\"614\" height=\"360\" src=\"https:\/\/www.blogs.unicamp.br\/zero\/wp-content\/uploads\/sites\/187\/2022\/08\/gnome-mpv-shot0013.jpg\" alt=\"\" class=\"wp-image-4568\" srcset=\"https:\/\/www.blogs.unicamp.br\/zero\/wp-content\/uploads\/sites\/187\/2022\/08\/gnome-mpv-shot0013.jpg 614w, https:\/\/www.blogs.unicamp.br\/zero\/wp-content\/uploads\/sites\/187\/2022\/08\/gnome-mpv-shot0013-300x176.jpg 300w, https:\/\/www.blogs.unicamp.br\/zero\/wp-content\/uploads\/sites\/187\/2022\/08\/gnome-mpv-shot0013-500x293.jpg 500w\" sizes=\"(max-width: 614px) 100vw, 614px\" \/><\/figure>\n\n\n\n<p class=\" eplus-wrapper\">Logo, ao retomarmos os c\u00e1lculos iniciais, podemos descobrir qual deve ser o \u00e2ngulo x.<\/p>\n\n\n\n<p class=\" has-text-align-center eplus-wrapper\">tang(x) = (18\/7)\/10<\/p>\n\n\n\n<p class=\" has-text-align-center eplus-wrapper\">tang(x) = 9\/35<\/p>\n\n\n\n<p class=\" has-text-align-center eplus-wrapper\">arctang(9\/35) = 14.42\u00ba<\/p>\n\n\n\n<p class=\" eplus-wrapper\">Certamente h\u00e1 v\u00e1rias imprecis\u00f5es em nosso m\u00e9todo, assim como seria improv\u00e1vel que os desenvolvedores do jogo escolhessem uma angula\u00e7\u00e3o n\u00e3o inteira. Desse modo me arrisco dizer que a angula\u00e7\u00e3o m\u00e1xima deve ser 15\u00ba.<\/p>\n\n\n\n<p class=\" eplus-wrapper\">O interessante desse texto n\u00e3o \u00e9 propriamente o c\u00e1lculo, pois n\u00e3o h\u00e1 novidade alguma em utilizar lados de um tri\u00e2ngulo ret\u00e2ngulo para encontrar seu \u00e2ngulo. Contudo, a maneira como as informa\u00e7\u00f5es necess\u00e1rias para modelar nosso tri\u00e2ngulo, foram deduzidas dentro da pr\u00f3pria jogabilidade de Heretic. Fica assim o convite para conhecer este jogo (voc\u00ea pode baix\u00e1-lo facilmente ou jogar online) e tamb\u00e9m a procurar outras modelagens matem\u00e1ticas dentro de jogos digitais.<\/p>\n\n\n\n<p class=\" eplus-wrapper\"><a href=\"https:\/\/pixabay.com\/pt\/\/?utm_source=link-attribution&amp;utm_medium=referral&amp;utm_campaign=image&amp;utm_content=2879946\"><\/a><\/p>\n\n\n\n<hr class=\" wp-block-separator has-css-opacity eplus-wrapper\" \/>\n\n\n\n<p class=\" eplus-wrapper\">Como referenciar este conte\u00fado em formato ABNT (baseado na norma NBR 6023\/2018): <\/p>\n\n\n\n<p class=\" eplus-wrapper\">SILVA, Marcos Henrique de Paula Dias da. Trigonometrando em Heretic. <em>In<\/em>: UNIVERSIDADE ESTADUAL DE CAMPINAS. <strong><a href=\"https:\/\/www.blogs.unicamp.br\/zero\/\" target=\"_blank\" rel=\"noreferrer noopener\">Zero \u2013 Blog de Ci\u00eancia da Unicamp<\/a>. <a href=\"https:\/\/www.blogs.unicamp.br\/zero\/category\/v-8-ed-1\/\" target=\"_blank\" rel=\"noreferrer noopener\">Volume 8. Ed. 1. 2\u00ba semestre de 2022<\/a><\/strong>. Campinas, 6 ago. 2022. Dispon\u00edvel em: <a href=\"https:\/\/www.blogs.unicamp.br\/zero\/4557\/\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/www.blogs.unicamp.br\/zero\/4557\/<\/a>. Acesso em: &lt;data-de-hoje&gt;.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Descobrindo a inclina\u00e7\u00e3o da mira em um jogo de First Person Shooter, usando apenas elementos da pr\u00f3pria jogabilidade e trigonometria.<\/p>\n","protected":false},"author":434,"featured_media":4570,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"colormag_page_container_layout":"default_layout","colormag_page_sidebar_layout":"default_layout","_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"pgc_sgb_lightbox_settings":"","_vp_format_video_url":"","_vp_image_focal_point":[],"footnotes":""},"categories":[1224],"tags":[],"class_list":["post-4557","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-v-8-ed-1"],"_links":{"self":[{"href":"https:\/\/www.blogs.unicamp.br\/zero\/wp-json\/wp\/v2\/posts\/4557","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.blogs.unicamp.br\/zero\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.blogs.unicamp.br\/zero\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.blogs.unicamp.br\/zero\/wp-json\/wp\/v2\/users\/434"}],"replies":[{"embeddable":true,"href":"https:\/\/www.blogs.unicamp.br\/zero\/wp-json\/wp\/v2\/comments?post=4557"}],"version-history":[{"count":3,"href":"https:\/\/www.blogs.unicamp.br\/zero\/wp-json\/wp\/v2\/posts\/4557\/revisions"}],"predecessor-version":[{"id":5345,"href":"https:\/\/www.blogs.unicamp.br\/zero\/wp-json\/wp\/v2\/posts\/4557\/revisions\/5345"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.blogs.unicamp.br\/zero\/wp-json\/wp\/v2\/media\/4570"}],"wp:attachment":[{"href":"https:\/\/www.blogs.unicamp.br\/zero\/wp-json\/wp\/v2\/media?parent=4557"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.blogs.unicamp.br\/zero\/wp-json\/wp\/v2\/categories?post=4557"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.blogs.unicamp.br\/zero\/wp-json\/wp\/v2\/tags?post=4557"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}