Escolar Documentos
Profissional Documentos
Cultura Documentos
Marabá – Pa
2017
GEAN LUCAS DA CONCEIÇÃO SOUZA
Marabá – Pa
2017
GEAN LUCAS DA CONCEIÇÃO SOUZA
Data de aprovação: / /
Conceito:
BANCA EXAMINADORA:
Marabá – Pa
2017
DEDICATÓRIA
RESUMO
ABSTRACT
Invariably, since antiquity the human being seeks mechanisms to adapt to the environment in
which he lives, building, innovating and creating from what he finds in nature, this process is
continuous and evolutionary, starting from this principle this content seeks to analyze,
highlight and To exemplify one of these tools, the internet, studying its language structure and
applying to the teaching of physics. In this way, this work, in an introductory way, describes
the main characteristic of HTML, css and JavaScript, its elements and its practical (visual)
applications, since they are responsible for the communication in the network. In the end, we
realize that the teaching of kinematics is much more dynamic and attractive to the student
through the HTML, because it allows us to theoretically demonstrate the content and even
goes beyond, through simulations and interactivities that JavaScript allows us to elaborate. It
is a medium that is easy to understand and can contribute even more to the evolution of
didactic education in general, it is a language that transcends the classroom, and allows access
at any moment to anyone. Thus making an important tool to bring knowledge to the reader
and student, demonstrating another advance for teaching and learning.
LISTA DE FIGURAS
LISTA DE GRÁFICOS
Gráfico 1: Velocidade em função do tempo…………………………………………………..24
LISTA DE TABELAS
SUMÁRIO
1. INTRODUÇÃO.....................................................................................................................9
2. OBJETIVOS........................................................................................................................10
2.1. OBJETIVO GERAL..........................................................................................................10
2.2. OBJETIVOS ESPECÍFICOS.............................................................................................10
3. TECNOLOGIAS PARA O ENSINO DA FÍSICA: INTERNET, HTML5, CSS E
JAVASCRIPT...........................................................................................................................10
3.1. INTERNET........................................................................................................................10
3.1.1. Internet e o ensino...........................................................................................................11
3.2. HTML.................................................................................................................................11
3.2.1. Definição.........................................................................................................................11
3.2.2. Noções de HTML..........................................................................................................12
3.2.3. Criando documentos em HTML..................................................................................12
3.2.4. Elementos básicos..........................................................................................................12
3.2.5. Título (<TITLE>…</TITLE>)....................................................................................13
3.2.7. Parágrafo (<p> … </p>)...............................................................................................14
3.4. CSS.....................................................................................................................................16
3.4.1 Grupos de propriedades CSS........................................................................................17
3.4.2. Diferenças entre CSS e HTML....................................................................................17
3.5. JAVASCRIPT.....................................................................................................................18
3.5.1. <Canvas>.......................................................................................................................18
3.5.2. Funções javascript.........................................................................................................19
3.5.3. If...else.............................................................................................................................20
3.5.4. Swicth.............................................................................................................................20
3.5.5. Executando o código javascript...................................................................................21
3.5.6. Relação HTML, CSS e Javascript...............................................................................21
4. ROTEIRO DESCRITIVO: AULA DE CINEMÁTICA..................................................21
4.1. MECÂNICA......................................................................................................................21
4.2. CINEMÁTICA...................................................................................................................21
4.2.1. Sistema de referência....................................................................................................22
4.2.2. Movimento e repouso....................................................................................................22
4.2.3. Velocidade......................................................................................................................22
8
1. INTRODUÇÃO
Desde os primórdios o ser humano tem buscado novas ferramentas para evoluir e tornar
acessível seu conhecimento de mundo, desde a descoberta do fogo e utilização do mesmo,
percebemos que somos seres evolutivos e insaciáveis quanto a conhecer o que nos cerca. A
tecnologia, como uma destas ferramentas, traz consigo o encontro da ciência com a
engenharia, buscando métodos e mecanismos que contribuam para este avanço constante e
inexorável.
Sabe-se que nem todas as ferramentas tecnológicas inventadas são aferidas à educação,
algumas pouco, ou de nenhum modo, se aproximam de tal conceito. Entretanto, nunca antes
se teve o conhecimento tão próximo e acessível, ferramentas como computadores, tabletes,
celulares e internet permitem a qualquer pessoa dotada de um pouco de curiosidade a
possibilidade de conhecer e entender o mundo que o cerca.
Este trabalho estenderá os conceitos e princípios básicos para que possamos relacionar este
avanço e trazê-lo como ferramenta imprescindível para o ensino, buscando demonstrar, em
detalhes, algumas ferramentas utilizadas hoje em dia para aproximar o conteúdo para cada
pessoa, de maneira simples, acessível e compreensível.
10
2. OBJETIVOS
2.1. OBJETIVO GERAL
Compreender a importância das ferramentas tecnológicas para o ensino, demonstrando a
estrutura básica de HTML, CSS e javascript. Posteriormente, demonstrar uma aula abordando
o estudo da cinemática e seus elementos.
Com o passar dos anos, necessariamente nas décadas de 1970 e 1980, a internet tornou-se um
importante meio de comunicação acadêmico, servindo a professores e universitários dos
EUA, onde eles trocavam ideias, mensagens e arquivos nesse novo meio de comunicação. O
avanço tornou-se ainda mais vertiginoso quando, na década de 1990, o engenheiro inglês Tim
Bernes-Lee desenvolveu o www (World Wide Web), permitindo assim o a utilização de uma
interface gráfica mais dinâmica e visualmente mais interessante, e principalmente mais
acessível a população em geral.
11
A partir daí, a década de 1990, tornou-se a era da disseminação da internet. Desde então,
surgiram novas ferramentas para facilitar o acesso em meio a essa plataforma, como os
browsers (navegadores), e, que, nos dias atuais, tornaram-se compatíveis com outras
tecnologias, como, por exemplo, smartphones, TVs e tablets. A internet passou a ser utilizada
por todas as classes sociais, independente de idade, cor ou gênero, como meio de
disseminação de conhecimento e materiais de estudo, ou meio de interação social com o
advento das redes sociais.
No Brasil, pesquisas feitas pelo (Cgi.br), (Cetic.br), (Pnad 2014 – IBGE) e (Nic.br) revelam
que 58% da população brasileira utiliza internet, resultando em mais de 102 milhões de
internautas, e mais, em 2014, 77,9% da população brasileira (acima de 9 anos) acessaram
internet através de um smartphone. De acordo com a pesquisa, o telefone celular é o
dispositivo mais utilizado nos domicílios para acessar internet (89% - dados da TIC, 2015),
seguida por computador de mesa (40%), notebook (39%), tablet (19%), televisão (13%) e
videogame (8%).
Com relação aos estudantes, dados da TIC – 2014, mostram que o celular era um bem pessoal
para 93,4% dos estudantes da rede privada de ensino e para 66,8% dos da rede pública, que
representavam 74,3% dos estudantes brasileiros em 2014. Esses dados, comprovam que os
celulares, assim como tablets, através da internet, promovem um novo mecanismo de
interação e estudo.
3.2. HTML
3.2.1. Definição
Criado a partir da junção dos padrões Hytime (Hypermedia/Time-based Doumnt Structuring
Language) e SGML (Standard Generalized Markup Language), o HTML (HyperText Markup
Language), linguagem utilizada para criar páginas na Web, define como determinado
elemento deverá ser visualizado em um browser (programa de navegação), não é portanto
uma linguagem de programação, mas sim uma linguagem de formatação e exibição de textos,
12
Entre os anos de 1993 e 1995, mais três versões para HTML foram propostas, sendo HTML+,
HTML2.0 e HTML3.0, com o intuito de trazer mudanças para aprimorar as possibilidades de
linguagem. Desde o começo o HTML foi criado para ser uma linguagem aquém de
plataformas, browsers e os demais meios de acesso. Assim sendo, você cria apenas um código
HTML e este código pode ser lido por vários meios, não contendo, dessa forma, versões
diferentes para diversos dispositivos.
<!DOCTYPE HTML>
<HTML>
<HEAD>
<TITLE>Título da página</TITLE>
</HEAD>
<BODY>
Corpo do texto
</BODY>
</HTML>
13
➔ <!DOCTYPE HTML>: Indica para o browser e para outros meios qual a especificação
do código utilizar. O Doctype deve ser a primeira linha de código do documento antes
da Tag HTML.
Exemplo:
Exemplo:
<HTML>
<HEAD>
Documento de texto
</HEAD>
Exemplo:
Html5 é uma versão mais recente para HTML4, com algumas correções em relação as versões
anteriores, alguns dos elementos mais interessantes são:
Possui também uma nova API (Interfaces de Programação de Aplicativos), sendo algumas
mais interessantes como: Geolocalização HTML, HTML arrastar e soltar, armazenamento
local HTML e cache de aplicativos HTML.
Com relação a interação, HTML5 se destaca ainda mais que seus antecessores, uma das
características que contribuem para tal façanha é o fato dessa nova versão permitir
diretamente na execução de seus códigos elementos em JavaScript, SVG e Canvas, com isso a
página deixa de ser meramente um book online de leitura, para um ambiente de interação.
Veja abaixo a tabela demonstrando a evolução, ao longo dos anos, das versões HTML. Dados
w3schools,
16
Ano Versão
Fonte: w3school/cssref
3.4. CSS
Css é uma abreviatura para Cascading Styles Sheets – Folha de Estilo em Cascata. Em
definição, uma folha de estilos é um conjunto que informa a um programa, responsável pela
formatação de um documento, como organizar e uma página, dispor o texto, e algumas outras
peculiaridades. Em suma, Css é uma linguagem que descreve o estilo de um documento
HTML, ela descreve como os elementos deverão ser exibidos.
Exemplo:
<!DOCTYPE html>
<html>
<head>
<style>
body {background-color: lightgreen;}
h1 { color: black; text-align: center;}
p{ font-family: Arial; font-size: 20px;}
</style>
</head>
17
<body>
<h1>Meu Primeiro Exemplo CSS</h1>
<p>Este é o Parágrafo.</p>
</body>
</html>
Fonte: w3schools/cssref
Estas são algumas propriedades Css, cada grupo citado acima têm em si um outro subgrupo
de características, por exemplo, a propriedade tabela possui algumas características como
border-collapse, border-spacing, caption-side, empty-cells e table-layout, onde cada comando
desse influenciará na aparência do documento no browser.
já foi explicado. Com o tempo, com o vertiginoso avanço da web, os designers começaram a
ter a necessidade de ter mecanismos para editar layouts de páginas, de maneira mais prática, e
que poupassem mais tempo, daí a importância de CSS, pois o mesmo é utilizado para
formatar conteúdos já estruturados.
Sendo assim, o CSS dispõe de um mecanismo mais simples e amplos para aparência do
documento, e ao mesmo tempo essa separação de estilos de apresentação de marcação dos
conteúdos permite a manutenção dos sites de maneira mais fácil.
3.5. JAVASCRIPT
JavaScript é uma das linguagens mais clássicas utilizadas na internet, criada pela Netscape em
1995, ela pode ser introduzida em diferentes ambientes, não se limitando apenas aos
navegadores de internet. É uma linguagem simples e leve, e, apesar de não ser muito útil
como uma linguagem independente, ela é facilmente inserida a outros produtos e aplicações,
como browsers da web. Ela consegue interagir com, praticamente, a maioria dos elementos de
um documento HTML, trabalhando com variáveis, gerando resultados, aletrando a aparência
de elementos e o mais interessante, sem a necessidade de recarregamento da página.
Com relação a semelhança com a palavra Java, apesar de possuir alguns pontos em comum,
inclusive o nome, JavaScript e Java não são a mesma coisa, muito menos uma palavra deriva
da outra. JavaScript possui uma flexibilidade maior com relação ao Java, não sendo
necessário, ao programador, declarar uma variável antes de utilizá-la ou de inserir novas
propriedades e métodos a um objeto a qualquer momento.
A princípio a função de javascript é escrever funções que são inseridas em páginas HTML e
que interagem com o modelo de objeto de documentos da página, alguns exemplos são abrir
uma nova janela com controle programático sobre seu tamanho, atributos e posição, mudar
imagens a medida que movimenta-se o mouse sobre elas entre outros.
3.5.1. <Canvas>
É um tipo de elemento que pode ser utilizado para desenhar utilizando uma linguagem de
“script”(comumente javascript). Este por exemplo pode ser utilizado para desenhar gráficos,
editar fotos e algumas animações.
19
Canvas foi incrementado a princípio pela Apple para Mac OS X Dashboard e posteriormente
implementado nos browsers safari e google chrome. Utilizar este elemento não é tão difícil,
partindo do princípio de que a pessoa possua algum conhecimento básico sobre html e
javascript. Em alguns navegadores antigos a tag <canvas> não é suportada, o tamanho padrão
de um canvas é de 300px.150px (largura.altura), entretanto, pode-se customizar-se utilizando
propriedades CSS widht e heigth.
Exemplo
<!DOCTYPE html>
<html>
<body>
<canvas id="myCanvas" width="200" height="100" style="border:3px solid #d3d3d3;">
O seu navegador não suporta tag canvas.</canvas>
<script>
var c = document.getElementById("myCanvas");
var ctx = c.getContext("2d");
ctx.font = "30px Times New Roman";
ctx.strokeText("Física",20,70);
</script>
</body>
</html>
Sintaxe
if (condition) {
block of code to be executed if the condition is true
}
Exemplo
<!DOCTYPE html>
<html>
<body>
<p>Display "Boa noite!" se a hora for maior que 18:00:</p>
<p id="demo">Boa noite!</p>
<script>
if (new Date().getHours() > 18) {
document.getElementById("demo").innerHTML = "boa noite!";
}
</script>
</body>
</html>
O resultado será
Boa noite
3.5.4. Swicth
A instrução, ou comando, swicth é utilizado para executar diferentes ações com base em
condições diferentes. Sendo assim, é possível disparar determinadas ações a partir do valor de
uma variável.
21
Observe
swicth (expression) {
case n:
code block
break;
case n:
code block
default:
code block
}
4.1. MECÂNICA
A mecânica é a área da física responsável por estudar, descrever e analisar o movimento dos
objetos e partículas. Por motivos de organização do conhecimento, a mecânica é dividida em
duas sub-áreas: a cinemática e a dinâmica, aqui, irei me ater ao ensino da cinemática.
4.2. CINEMÁTICA
A cinemática é a parte, integrante, da mecânica incumbida de estudar o movimento dos
corpos, definindo a posição, velocidade e aceleração do mesmo em dado instante.
22
4.2.3. Velocidade
Quando um corpo está em movimento em algum sistema, dizemos que o mesmo possui
velocidade. Imagine que, em determinado intervalo de tempo Δ t , o objeto móvel percorra
um espaço Δ s . A razão entre o espaço percorrido, Δ s , e o intervalo de tempo gasto para
percorrê-lo é a velocidade média nesse intervalo de tempo, ou seja,
Δ s−s0
V m = Δs =
t t−t 0
Fonte: Newtoncbraga
As unidades de medida de velocidade mais usadas são km/h (quilômetros por hora), m/s
(metros por segundo) e m/h (metros por hora). No SI (sistema internacional), a velocidade é
medida em metros por segundo.
4.2.4. Aceleração
Se um objeto varia sua velocidade, pode-se afirmar que o mesmo está dotado de aceleração.
Se num intervalo de tempo Δ t , houve uma variação de velocidade (chamada aqui de
Δ v ), definimos a aceleração média ( am ) nesse intervalo como a relação
Δ
am = Δv
t
a=0
V =V 0
S=S 0+V 0 t
a=Δ v /Δt
v =v 0 +a t
1
S=S 0+ v 0 t+ at
2
No gráfico abaixo temos um objeto deslocando-se em linha reta sobre um plano horizontal.
Onde sua aceleração escalar (a) está em função do tempo (s).
1
s= . g t 2
2
v =g . t
v 2=2 g Δ s
Quando um objeto é lançado para cima ou para baixo, com uma velocidade inicial ≠ 0,
chamamos o movimento de lançamento vertical, que também é um movimento
uniformemente variado, assim como o de queda livre.
Neste movimento a velocidade inicial V 0 , pode ser decomposta em uma velocidade inicial
vertical dada por
V 0 y =V 0 . sen θ
V 0 x =V 0 . cos θ
Na direção horizontal não se têm aceleração, portanto temos a velocidade nesta componente
constante e igual a zero.
V x =V 0 x =V 0 .cos θ=constante
V x =V x . t=V 0 . cos θ .t
V y =V 0 y−g t
V y =V 0 . sen θ−g t
g t2
S y =V 0 sen θ. t−
2
5. QUESTÕES INTERATIVAS
Este capítulo demonstrará de maneira prática e sucinta a forma interativa de javascript em
HTML, demonstrando com algumas questões como se torna possível utilizar esta linguagem
como uma ferramenta de apoio para o educador.
Todas as questões foram criadas de acordo com o conteúdo abordado até aqui, ou seja,
relacionadas a cinemática. Estes exercícios servem de apoio para o aluno, que poderá além de
conhecer a parte teórica, perceber a parte prática e interativa do conteúdo, além de poder
solucionar os exercícios.
5.1 PROBLEMA 1
Observe a figura 7
28
Figura 7: Basquete
O objetivo central deste exercício é encontrar a distância e a velocidade para que a bola atinja
o alvo.
Dada a equação
d
t=
V 0 cos β
v 2 sen (2β)
d=
2g √ 2g h
.[1+ 1− 2 2 ]
V 0 sen β
O aluno poderá encontrar a distância, em metros, para que o jogador acerte a cesta de acordo
com os dados estabelecidos.
29
Figura 8: Solução
Observe o exemplo da figura 8, para que a bola acerte o alvo a uma distância de 6 m, com um
ângulo β de 45º, é necessária uma velocidade inicial de 8,7 m/s, com estes dados o alvo será
atingido em um tempo de 0,98 s.
5.2 PROBLEMA 2
A extremidade esquerda da linha vermelha é o ponto em que um caminhoneiro inicia a
frenagem. Mesmo utilizando a máxima frenagem possível, o caminhão parou exatamente em
uma posição na eminência de ultrapassar o sinal vermelho. Qual módulo da desaceleração a,
se no momento da frenagem, o caminhão estava a 62,18 km/h?
30
Figura 9: Semáforo
V 20
a=
2.d
5.3. PROBLEMA 3
A extremidade esquerda da linha branca acima é o ponto em que um paraquedista inicia o
lançamento. Qual a velocidade inicial do lançamento V0 para que o paraquedista atinja o
círculo vermelho sobre o prédio?
Observe a figura 10
31
d
V 0=
√2. h
g
6. CONSIDERAÇÕES FINAIS
O objetivo deste trabalho foi elaborar um material didático para uma nova abordagem no
ensino da cinemática, considerando as ferramentas disponíveis, no caso, através do HTML,
que utiliza alguns meios para edição, como o CSS e Javascript. O mesmo foi desenvolvido, de
maneira que o leitor pudesse compreender a estrutura básica de um documento HTML, desde
a criação até a elaboração de edições.
No último capítulo foi elaborado um conteúdo interativo, onde foram feitas 3 questões acerca
do material descrito, demonstrando assim a parte interativa da estrutura aula em .
<!DOCTYPE html>
<html lang="pt">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Questão basquete</title>
</head>
<body>
<canvas id="fundo" width="1085" height="531" style="background-image:
url('fundo1.png')">
Se você visualizar esse texto, seu browser não suporta a tag canvas.
</canvas>
33
<script>
var canvas;//o elemento canvas sobre o qual desenharemos
var ctx;//o "contexto" da canvas que será utilizado (2D ou 3D)
var cesta = new Image();
var jogador = new Image();
var bola = new Image();
var xjogador = 0;
var dist = 7.9;
var h = 1.65;
var H = 1.9;
var distcorreto;
var beta = 45;
var theta = (30.0/180.0)*3.1415926;
var fx=5.0*Math.sqrt(2.0)/2.0;
var fy=5.0*Math.sqrt(2.0)/2.0;
var v0 = Math.sqrt(fx*fx+fy*fy);
var alpha = Math.atan(fy/fx)-theta;
var xx=xjogador+150;
var yy=330;
var xb = xx+parseFloat(fx)*17.6;
var yb = yy-parseFloat(fy)*17.6;
var fator = 0.2;
var xc = xb - fator*Math.sqrt(fx*fx+fy*fy)*17.6*Math.cos(alpha);
var yc = yb + fator*Math.sqrt(fx*fx+fy*fy)*17.6*Math.sin(alpha);
var xa = xx;
var ya = yy;
var xe = (xb*(1-fator*Math.cos(theta))+fator*xa*Math.cos(theta))*2-xc;
var ye = (yb*(1-fator*Math.cos(theta))+fator*ya*Math.cos(theta))*2-yc;
var tempo = 0;
var tempovertical;
var tempohorizontal;
var flagTempo = false;
34
function KeyDown(evt){
if (tempo==0){
switch (evt.keyCode) {
case 39:{ /*seta para direita*/
if (xjogador<600){
xjogador++;
dist-=0.01;
xx=xjogador+150;
yy=330;
xb = xx+parseFloat(fx)*17.6;
yb = yy-parseFloat(fy)*17.6;
xc = xb - fator*Math.sqrt(fx*fx+fy*fy)*17.6*Math.cos(alpha);
yc = yb + fator*Math.sqrt(fx*fx+fy*fy)*17.6*Math.sin(alpha);
xa = xx;
ya = yy;
xe = (xb*(1-fator*Math.cos(theta))+fator*xa*Math.cos(theta))*2-xc;
ye = (yb*(1-fator*Math.cos(theta))+fator*ya*Math.cos(theta))*2-yc;
}
break;
}
case 37: {/*seta para esquerda*/
if (xjogador>0){
xjogador--;
dist+=0.01;
xx=xjogador+150;
yy=330;
xb = xx+parseFloat(fx)*17.6;
yb = yy-parseFloat(fy)*17.6;
xc = xb - fator*Math.sqrt(fx*fx+fy*fy)*17.6*Math.cos(alpha);
yc = yb + fator*Math.sqrt(fx*fx+fy*fy)*17.6*Math.sin(alpha);
xa = xx;
ya = yy;
xe = (xb*(1-fator*Math.cos(theta))+fator*xa*Math.cos(theta))*2-xc;
ye = (yb*(1-fator*Math.cos(theta))+fator*ya*Math.cos(theta))*2-yc;
35
}
break;
}
case 38: {/*seta para cima*/
if (beta<90){
beta++;
v0=Math.sqrt(fx*fx+fy*fy);
fx=v0*Math.cos((beta/180.0)*Math.PI);
fy=v0*Math.sin((beta/180.0)*Math.PI);
v0=Math.sqrt(fx*fx+fy*fy);
alpha = Math.atan(fy/fx)-theta;
xx=xjogador+150;
yy=330;
xb = xx+parseFloat(fx)*17.6;
yb = yy-parseFloat(fy)*17.6;
xc = xb - fator*Math.sqrt(fx*fx+fy*fy)*17.6*Math.cos(alpha);
yc = yb + fator*Math.sqrt(fx*fx+fy*fy)*17.6*Math.sin(alpha);
xa = xx;
ya = yy;
xe = (xb*(1-fator*Math.cos(theta))+fator*xa*Math.cos(theta))*2-xc;
ye = (yb*(1-fator*Math.cos(theta))+fator*ya*Math.cos(theta))*2-yc;
}
break;
}
case 40: {/*seta para baixo*/
if (beta>0){
beta--;
v0=Math.sqrt(fx*fx+fy*fy);
fx=v0*Math.cos((beta/180.0)*Math.PI);
fy=v0*Math.sin((beta/180.0)*Math.PI);
v0=Math.sqrt(fx*fx+fy*fy);
alpha = Math.atan(fy/fx)-theta;
xx=xjogador+150;
yy=330;
36
xb = xx+parseFloat(fx)*17.6;
yb = yy-parseFloat(fy)*17.6;
xc = xb - fator*Math.sqrt(fx*fx+fy*fy)*17.6*Math.cos(alpha);
yc = yb + fator*Math.sqrt(fx*fx+fy*fy)*17.6*Math.sin(alpha);
xa = xx;
ya = yy;
xe = (xb*(1-fator*Math.cos(theta))+fator*xa*Math.cos(theta))*2-xc;
ye = (yb*(1-fator*Math.cos(theta))+fator*ya*Math.cos(theta))*2-yc;
}
break;
}
case 87: {
if (v0<20.0){
v0+=0.1;
fx=v0*Math.cos((beta/180.0)*Math.PI);
fy=v0*Math.sin((beta/180.0)*Math.PI);
alpha = Math.atan(fy/fx)-theta;
xx=xjogador+150;
yy=330;
xb = xx+parseFloat(fx)*17.6;
yb = yy-parseFloat(fy)*17.6;
xc = xb - fator*Math.sqrt(fx*fx+fy*fy)*17.6*Math.cos(alpha);
yc = yb + fator*Math.sqrt(fx*fx+fy*fy)*17.6*Math.sin(alpha);
xa = xx;
ya = yy;
xe = (xb*(1-fator*Math.cos(theta))+fator*xa*Math.cos(theta))*2-xc;
ye = (yb*(1-fator*Math.cos(theta))+fator*ya*Math.cos(theta))*2-yc;
}
break;
}
case 81: {
if (v0>3.0){
v0-=0.1;
fx=v0*Math.cos((beta/180.0)*Math.PI);
37
fy=v0*Math.sin((beta/180.0)*Math.PI);
alpha = Math.atan(fy/fx)-theta;
xx=xjogador+150;
yy=330;
xb = xx+parseFloat(fx)*17.6;
yb = yy-parseFloat(fy)*17.6;
xc = xb - fator*Math.sqrt(fx*fx+fy*fy)*17.6*Math.cos(alpha);
yc = yb + fator*Math.sqrt(fx*fx+fy*fy)*17.6*Math.sin(alpha);
xa = xx;
ya = yy;
xe = (xb*(1-fator*Math.cos(theta))+fator*xa*Math.cos(theta))*2-xc;
ye = (yb*(1-fator*Math.cos(theta))+fator*ya*Math.cos(theta))*2-yc;
} break;
}
case 13: {
flagTempo=true;
break;
}
}
}
}
function Iniciar() {
return setInterval(Atualizar, 1);
}
function Atualizar(){
tempovertical=v0*Math.sin(beta*(Math.PI/180.0))/9.8*(1.0+Math.sqrt(1.0+2.0*9.8*H/v0/v0/
Math.sin(beta*(Math.PI/180.0))/Math.sin(beta*(Math.PI/180.0))));
tempohorizontal=dist/v0/Math.cos((beta/180.0)*Math.PI);
if ((flagTempo)&&(tempo/1000.0<tempohorizontal)&&(tempo/1000.0<tempovertical)){
tempo+=1;
}
if ((tempo/1000.0>tempohorizontal)||(tempo/1000.0>tempovertical)){
if (distcorreto*0==0){
38
distcorreto = v0*v0*Math.sin(2.0*beta*(Math.PI/180.0))/2.0/9.8*(1.0+Math.sqrt(1.0-
2.0*9.8*h/v0/v0/Math.sin(beta*(Math.PI/180.0))/Math.sin(beta*(Math.PI/180.0))));
canvas = document.getElementById("fundo");
ctx = canvas.getContext("2d");
fundo.style.background = "url('fundo1.png') no-repeat";
ctx.beginPath();
ctx.clearRect(0, 0, 1085, 531);
ctx.closePath();
ctx.fill();
bola.src = "bola.png";
if (tempo==0){
xbola0 = xjogador+133;
}
xbola = xbola0 + v0*790.0/7.9*Math.cos((beta/180.0)*Math.PI)*tempo/1000.0;
ybola = 305 - v0*790.0/7.9*Math.sin((beta/180.0)*Math.PI)*tempo/1000.0 +
9.8*790.0/7.9/2.0*(tempo/1000.0)*(tempo/1000.0);
ctx.drawImage(bola, xbola, ybola , 38, 38);
cesta.src = "cesta.png";
ctx.drawImage(cesta, 700, 61, 397, 500);
jogador.src = "jogador1.png";
ctx.drawImage(jogador, xjogador+30, 250, 1.1*238, 1.1*300);
ctx.beginPath();
ctx.moveTo(xjogador+150,330);
ctx.lineTo(940,330);
ctx.strokeStyle = '#ff0000';
ctx.fillStyle = '#ff0000';
ctx.font = "bold 25px Arial";
if ((Math.round(dist*100))%100>9){
39
ctx.stroke();
ctx.strokeStyle="#0000FF";
ctx.beginPath();
ctx.moveTo(xx,yy);
ctx.lineTo(xx+parseFloat(fx)*17.6,yy-parseFloat(fy)*17.6);
ctx.moveTo(xc,yc);
ctx.lineTo(xx+parseFloat(fx)*17.6,yy-parseFloat(fy)*17.6);
ctx.moveTo(xe,ye);
ctx.lineTo(xx+parseFloat(fx)*17.6,yy-parseFloat(fy)*17.6);
ctx.lineWidth=8;
ctx.stroke();
ctx.strokeStyle="#CFB53B";
ctx.beginPath();
ctx.arc(xa,ya,fx*17.6*0.5,0.0,2.0*Math.PI-Math.atan(fy/fx),true);
ctx.stroke();
ctx.strokeStyle = '#CFB53B';
ctx.fillStyle = '#CFB53B';
ctx.fillText("\u03B2 ="+beta+"\u00B0",
xjogador+300, 310);
ctx.stroke();
ctx.beginPath();
ctx.strokeStyle = '#0000ff';
ctx.fillStyle = '#0000ff';
ctx.font = "bold 25px Arial";
ctx.fillText("v"+"\u2080"+"= "+ (Math.round(v0*10)-(Math.round(v0*10))%10)/10 +","+
((Math.round(v0*10))%10)+" m/s", xjogador, 280);
ctx.stroke();
ctx.beginPath();
ctx.strokeStyle = '#000000';
ctx.fillStyle = '#000000';
ctx.font = "bold 25px Arial";
ctx.fillText("tempo = "+(tempo/1000.0).toFixed(2)+" s", 100, 150);
ctx.stroke();
41
}
window.addEventListener('keydown', KeyDown);
Iniciar();
/script>
</body>
</html>
Apêndice B
<!DOCTYPE html>
<html lang="pt">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Questão Semáforo</title>
</head>
<body>
<h3 style="color:green; display:inline;">
a = <input type="number" id="aesc" value="200" min="33" max="400" step="1"> m/s^2
</h3>
<button onclick="Verificar()">Verificar</button><br>
<canvas id="fundo" width="1085" height="531" style="background-image:
url('fundo1.png')">
Se você visualizar esse texto, seu browser não suporta a tag canvas.
</canvas>
<script>
var canvas;//o elemento canvas sobre o qual desenharemos
var ctx;//o "contexto" da canvas que será utilizado (2D ou 3D)
var semaforo = new Image();
var caminhao = new Image();
var xfrenagem = Math.random() * (600 - 200) + 200;
var dist = (880-xfrenagem)*0.01;
var v0 = Math.random() * (20 - 10) + 10;
var a = v0*v0/2.0/dist;
var flagAcertou = false;
42
function Iniciar() {
return setInterval(Atualizar,1);
}
function Verificar(){
var aesc = parseFloat(document.getElementById("aesc").value);
if (Math.abs(a-aesc).toFixed(1)==0){
flagAcertou=true;
} else {
flagErrou=true;
}
}
function Atualizar(){
canvas = document.getElementById("fundo");
ctx = canvas.getContext("2d");
fundo.style.background = "url('fundo1.png') no-repeat";
ctx.beginPath();
ctx.clearRect(0, 0, 1085, 531);
ctx.closePath();
ctx.fill();
tempo1=(xfrenagem-150.0)/100.0/v0;
tempo2=v0/a;
if (tempo/1000.0<tempo1){
semaforo.src="verde.png";
} else if (tempo/1000.0<tempo1+tempo2/2.0){
semaforo.src="amarelo.png";
} else {
semaforo.src="vermelho.png";
}
ctx.drawImage(semaforo,880,2,190,200);
43
caminhao.src="caminhao.png";
if (flagAcertou){
tempo++;
if (xcaminhao+500<880){
if (tempo/1000.0<tempo1){
xcaminhao = -350 + v0*(tempo/1000.0)*100;
} else {
if ((tempo/1000.0-tempo1)<tempo2){
xcaminhao = xfrenagem-500 + v0*(tempo/1000.0-tempo1)*100.0 -
a/2.0*(tempo/1000.0-tempo1)*(tempo/1000.0-tempo1)*100.0;
}
}
}
}
ctx.drawImage(caminhao,xcaminhao,300,500,200);
ctx.beginPath();
ctx.lineWidth=8;
ctx.moveTo(xfrenagem,250);
ctx.lineTo(880,250);
ctx.strokeStyle = '#ff0000';
ctx.fillStyle = '#ff0000';
ctx.font = "bold 25px Arial";
if ((Math.round(dist*100))%100>9){
ctx.fillText("d = "+ (Math.round(dist*100)-(Math.round(dist*100))%100)/100 +","+
((Math.round(dist*100))%100)+" m", xfrenagem+dist/2, 220);
} else {
ctx.fillText("d = "+ (Math.round(dist*100)-(Math.round(dist*100))%100)/100
+",0"+ (Math.round(dist*100))%100+" m", xfrenagem+dist/2, 220);
}
ctx.stroke();
if (!(flagAcertou)){
ctx.fillText("A extremidade esquerda da linha", xfrenagem, 300);
ctx.fillText("vermelha acima é o ponto em que", xfrenagem, 325);
ctx.fillText("um caminhoneiro inicia a frenagem.", xfrenagem, 350);
44
Apêndice C
<!DOCTYPE html>
<html lang="pt">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Questão Semáforo</title>
</head>
<body>
<h3 style="color:green; display:inline;">
v0 = <input type="number" id="aesc" value="5.0" min="0.0" max="10.0" step="0.1">
m/s
</h3>
<button onclick="Verificar()">Verificar</button><br>
45
<script>
var canvas;//o elemento canvas sobre o qual desenharemos
var ctx;//o "contexto" da canvas que será utilizado (2D ou 3D)
var paraquedista = new Image();
var aviao = new Image();
var retangulo = new Image();
var xlancamento = Math.random() * (600 - 200) + 200;
var dist = (880-xlancamento)*0.1;
var h = 8;
var v0 = dist/Math.sqrt(2.0*h/9.8);
var flagAcertou = false;
var flagErrou = false;
var xaviao = -350;
var xparaquedista=0;
var tempo = 0;
var tempo1 = 0;
function Iniciar() {
return setInterval(Atualizar,1);
}
function Verificar(){
var aesc = parseFloat(document.getElementById("aesc").value);
if (Math.abs(v0-aesc).toFixed(1)==0){
flagAcertou=true;
} else {
flagErrou=true;
}
}
function Atualizar(){
46
canvas = document.getElementById("fundo");
ctx = canvas.getContext("2d");
fundo.style.background = "url('fundo1.png') no-repeat";
ctx.beginPath();
ctx.clearRect(0, 0, 1085, 531);
ctx.closePath();
ctx.fill();
aviao.src="aviao.png";
if (flagAcertou){
tempo++;
xaviao = -350 + v0*(tempo/1000.0)*10;
}
ctx.drawImage(aviao,xaviao,0,500,200);
if (xaviao+500>xlancamento){
if (xparaquedista<780){
tempo1++;
xparaquedista=xaviao+500;
}
paraquedista.src="paraquedista.png";
}
ctx.drawImage(paraquedista,xparaquedista-
25,100+9.8/2.0*(tempo1/1000.0)*(tempo1/1000.0)*10.0,50,50);
ctx.beginPath();
ctx.lineWidth=8;
ctx.moveTo(xlancamento,180);
ctx.lineTo(780,180);
ctx.moveTo(780,100);
ctx.lineTo(780,180);
ctx.fillText("h = "+ (Math.round(h*100)-(Math.round(h*100))%100)/100 +","+
((Math.round(h*100))%100)+" m", 820, 150);
ctx.strokeStyle = '#ffffff';
ctx.fillStyle = '#ffffff';
ctx.font = "bold 25px Arial";
if ((Math.round(dist*100))%100>9){
47
REFERÊNCIAS
[1] HAVERBEKE, M. Eloquent JavaScript, 2nd Ed.: A Modern Introduction to
Programming. No Starch Press, 2014. ISBN 9781593275846. Disponível em:
<https://books.google.com.br/books?id=mDzDBQAAQBAJ>
[2] HEWITT, P. Física Conceitual – 12.Ed: [s.n.], 2015. ISBN 9788582603413. Disponível
em:<https://books.google.com.br/books?id=QgKbCgAAQBAJ>
48