Você está aqui: JavaScript ::: Dicas & Truques ::: Geometria, Trigonometria e Figuras Geométricas

Como testar se um ponto está dentro de um círculo em JavaScript - Desenvolvimento de Games com JavaScript

Quantidade de visualizações: 1443 vezes
Quando estamos trabalhando com computação gráfica, geometria e trigonometria ou desenvolvimento de jogos em JavaScript, é comum precisarmos verificar se um determinado ponto (uma coordenada x, y) está contido dentro de um círculo.

Para melhor entendimento, veja a imagem a seguir:



Veja que temos um círculo com raio igual a 115 e com centro nas coordenadas (x = 205; y = 166). Temos também dois pontos. O ponto vermelho está nas coordenadas (x = 140; y = 90) e o ponto azul está nas coordenadas (x = 330; y = 500.

Como podemos ver na imagem, o ponto vermelho está dentro do círculo, enquanto o ponto azul está fora. E nosso intenção nesta dica é escrever o código JavaScript que permite fazer essa verificação. Tenha em mente que está técnica é muito útil para o teste de colisões no desenvolvimento de games.

Veja o código completo para o exemplo:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

<!doctype html>
<html>
<head>
  <title>Desenvolvimento de Games usando HTML5 e JavaScript</title>
</head>
<body>

<script type="text/javascript">
  // vamos declarar a classe Circulo
  class Circulo{
    constructor(xc, yc, raio){
      this.xc = xc; // x do centro
      this.yc = yc; // y do centro
      this.raio = raio; // raio do círculo
    }
  }
  
  // agora vamos declarar a classe Ponto
  class Ponto{
    constructor(x, y){
      this.x = x; // coordenada x
      this.y = y; // coordenada y	
    }
  }
  
  // vamos criar um objeto Circulo
  var c = new Circulo(90, 50, 115);
  // vamos criar um objeto Ponto
  var p = new Ponto(140, 90);
  
  // vamos verificar se o ponto está dentro do
  // círculo
  var dx = p.x - c.xc;
  var dy = p.y - c.yc;
  if((Math.pow(dx, 2) + Math.pow(dy, 2)) < Math.pow(c.raio, 2)){
    document.writeln("O ponto está dentro do círculo");  
  }
  else{
    document.writeln("O ponto NÃO está dentro do círculo");  
  }
</script>
  
</body>
</html>

Ao executar este código nós teremos o seguinte resultado:

O ponto está dentro do círculo.

Experimente com círculos de raios e coordenadas centrais diferentes e também com pontos em várias coordenadas e veja como os resultados são interessantes.

Link para compartilhar na Internet ou com seus amigos:

JavaScript ::: Dicas & Truques ::: Data e Hora

Como subtrair dias de uma data em JavaScript - Data e horas em JavaScript

Quantidade de visualizações: 16523 vezes
Em algumas situações, principalmente quando estamos desenvolvendo aplicações que envolvem datas, horas e calendários em JavaScript, nós precisamos subtrair dias de uma data. Nesta dica eu mostro como isso pode ser feito.

Veja o código completo abaixo:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

<html>
<head>
<title>Estudando JavaScript</title>
</head>
<body>
 
<script type="text/javascript">
  function subtrairDias(data, dias){
    return new Date(data.getTime() - 
    (dias * 24 * 60 * 60 * 1000));
  }
 
  document.write('Hoje é: ' + 
    (new Date()).toLocaleDateString() + '<br>');
  document.write('5 dias atrás era: ' + 
    subtrairDias(new Date(), 5).toLocaleDateString());
</script>
 
</body>
</html>

Ao executarmos este código nós teremos o seguinte resultado:

Hoje é: 25/03/2021
5 dias atrás era: 20/03/2021


JavaScript ::: Dicas & Truques ::: Miscelâneas

JavaScript para iniciantes - Como usar o método escape() para codificar uma frase em JavaScript

Quantidade de visualizações: 12509 vezes
A função escape() da linguagem JavaScript é usada quando precisamos codificar uma palavra, frase ou texto, ou seja, uma string. Em geral nós a usamos para codificar caracteres especiais em uma string, com a exceção dos caracteres e símbolos "* @ - _ + . /".

Veja um exemplo completo:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

<html>
<head>
<title>Estudando JavaScript</title>
</head>
<body>

<script type="text/javascript">
  var frase = "Programar em JavaScript é muito bom";
  document.write("Original: " + frase + "<br>");
  document.write("Codificada: " + escape(frase));
</script>
 
</body>
</html>

Ao executarmos este código nós teremos o seguinte resultado:

Original: Programar em JavaScript é muito bom
Codificada: Programar%20em%20JavaScript
%20%E9%20muito%20bom

Lembre-se de que o objetivo da função escape() é tornar uma string portável, ou seja, que pode ser transmitida pela rede para qualquer computador que suportar os caracteres ASCII.

Nota: A função escape() foi marcada como desatualizada (deprecated) a partir do JavaScript 1.5. Em vez dela nós devemos usar as funções encodeURI() ou encodeURIComponent().


JavaScript ::: Dicas & Truques ::: Recursão (Recursividade)

JavaScript Avançado - Como remover todas as ocorrências de uma substring em uma string usando uma função recursiva

Quantidade de visualizações: 108 vezes
Esta dica contém um ótimo exercício de recursão. Trata-se de uma função JavaScript recursiva para remover todas as ocorrências de uma substring em uma string. Analise o código cuidadosamente e você conseguirá desenvolver várias funções de recursividade a partir dele.

Veja o código JavaScript completo:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

<html>
<head>
<title>Estudando JavaScript</title>
</head>
<body>

<script type="text/javascript">
  // função recursiva que remove todas as ocorrências
  // de uma substring em uma string
  function remover(string, substring){
    // primeiro obtemos o índice da substring
    // dentro da string
    var indice = string.indexOf(substring);
    var resultado = "";
  
    // interromper a recursividade? 
    if(indice == -1){
      return string;
    }
    else{
      resultado += string.substring(0, indice) + 
        remover(string.substring(indice + substring.length),
        substring);
    }    

    return resultado;
  }

  // hora de testar a função recursiva
  var frase = "Ontem comprei duas camisas e uma calça";
  document.writeln("Original: " + frase);
  frase = remover(frase, "duas");
  document.writeln("<br>Nova frase: " + frase);  
</script>
 
</body>
</html>

Ao executar este código nós teremos o seguinte resultado:

Original: Ontem comprei duas camisas e uma calça
Nova frase: Ontem comprei camisas e uma calça


Vamos testar seus conhecimentos em Hidrologia

Qual das alternativas abaixo apresenta o conceito correto de bacia hidrográfica?

A) Unidade espacial que comporta a rede de drenagem delimitada pelo relevo.

B) Território marcado apenas pela presença de córregos de regime intermitente.

C) Classificação geológica formada pelo conjunto de rios com a mesma nascente.

D) Categoria de análise que é fruto da diminuição da rede de drenagem regional.

E) Categorização hidráulica dos rios que possuem a mesma vazão na jusante.
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em Engenharia Civil - Construção Civil

Fases de uma obra

Em relação aos conceitos envolvidos na elaboração de um orçamento de obras, assinale a alternativa correta.

A) Custos diretos são aqueles em que é necessário estipular um fator de rateio para que sejam apropriados aos serviços.

B) Devem ser incluídas no título "desmobilização" de um orçamento as despesas com locação, fechamento, tapumes, demolições e relocações.

C) A administração do canteiro de obras e as despesas decorrentes da administração da empresa fazem parte dos custos diretos de uma obra.

D) Como regra, orçam-se os preços na construção civil por serviço, determinando-os segundo a produção de composições unitárias.

E) Em um solo, caso seja necessário escavar 1 m3 do terreno, deve-se orçar, no item referente à escavação do material, o valor 1,4 m3.
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em Engenharia Civil - Instalações Hidráulicas Prediais

Materiais empregados para instalação de água fria e esgoto

Em terminais de pias e acessórios embutidos na parede, onde são rosqueadas mangueiras e conexões, é indicada a aplicação de joelhos reforçados, em que a rosca é metálica, embutida sob pressão no PVC. A identificação dessa conexão é por um anel azul em sua face. Em relação ao joelho convencional, que é todo em PVC, a vantagem é:

A) estética, uma vez que a face do joelho proporciona um acabamento rente ao azulejo superior à comum.

B) econômica pois elimina uma série de outros componentes e conexões.

C) o sistema de engate rapido por meio de utilização de anel de vedação junto à rosca.

D) o fato de que, com o joelho reforçado, o risco de acontecer trinca resultante de aperto é menor.

E) que fica exposta, eliminando o encaixe na alvenaria, diferentemente das comuns.
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em Engenharia Civil - Construção Civil

Fases de uma obra

Ao documento em que se registram, pela ordem de sucessão em que são executados, os serviços necessários à realização da construção e os respectivos prazos, dá-se o nome de:

A) Diário de obra.

B) Cronograma físico-financeiro.

C) Gráfico de Gantt.

D) Planejamento.

E) Cronograma físico.
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em JavaScript

Qual é a forma correta de se escrever uma laço WHILE em JavaScript?

A) while (a < 10) {}

B) while a = 1 to 10

C) while (a < 10):

D) while (a < 10; a++) {}
Verificar Resposta Estudar Cards Todas as Questões

Desafios, Exercícios e Algoritmos Resolvidos de JavaScript

Veja mais Dicas e truques de JavaScript

Dicas e truques de outras linguagens

Códigos Fonte

Programa de Gestão Financeira Controle de Contas a Pagar e a Receber com Cadastro de Clientes e FornecedoresSoftware de Gestão Financeira com código fonte em PHP, MySQL, Bootstrap, jQuery - Inclui cadastro de clientes, fornecedores e ticket de atendimento
Diga adeus às planilhas do Excel e tenha 100% de controle sobre suas contas a pagar e a receber, gestão de receitas e despesas, cadastro de clientes e fornecedores com fotos e histórico de atendimentos. Código fonte completo e funcional, com instruções para instalação e configuração do banco de dados MySQL. Fácil de modificar e adicionar novas funcionalidades. Clique aqui e saiba mais
Controle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidadesControle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidades
Tenha o seu próprio sistema de controle de estoque web. com cadastro de produtos, categorias, fornecedores, entradas e saídas de produtos, com relatórios por data, margem de lucro e muito mais. Código simples e fácil de modificar. Acompanha instruções para instalação e criação do banco de dados MySQL. Clique aqui e saiba mais

Linguagens Mais Populares

1º lugar: Java
2º lugar: Python
3º lugar: C#
4º lugar: PHP
5º lugar: Delphi
6º lugar: C
7º lugar: JavaScript
8º lugar: C++
9º lugar: VB.NET
10º lugar: Ruby



© 2024 Arquivo de Códigos - Todos os direitos reservados
Neste momento há 44 usuários muito felizes estudando em nosso site.