Você está aqui: C# ::: C# para Engenharia ::: Geometria Analítica e Álgebra Linear

Como calcular a distância entre dois pontos no plano em C# - C# para Geometria Analítica e Álgebra Linear

Quantidade de visualizações: 530 vezes
Como calcular a Distância Euclidiana entre dois pontos usando C#.

Em várias aplicações envolvendo geometria, principalmente no desenvolvimento de jogos em C#, é comum nos depararmos com a necessidade de calcular a distância entre dois pontos A e B. Nessa dica mostrarei como efetuar esse cálculo no R2, ou seja, no plano. Em outra dica eu abordo o cálculo no R3 (espaço).

Comece analisando a imagem abaixo:



Veja que temos um ponto A (x = 3; y = 6) e um ponto B (x = 9; y = 4). Para determinarmos a distância entre esses dois pontos no plano cartesiano, temos que realizar a análise tanto no sentido do eixo das abscissas (x) quanto no do eixo das ordenadas (y).

Veja a fórmula:

\[d_{AB} = \sqrt{\left(x_b - x_a\right)^2 + \left(y_b - y_a\right)^2}\]

Agora, jogando os valores dos dois pontos da fórmula nós teremos:

\[d_{AB} = \sqrt{\left(9 - 3\right)^2 + \left(6 - 4\right)^2}\]

Que resulta em 6,32 (aproximadamente).

E agora veja o código C# completo que lê as coordenadas dos dois pontos e mostra a distância entre eles:

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

using System;

namespace Estudos {
  class Principal {
    // função principal do programa C#
    static void Main(string[] args) {
      // vamos ler os dados do primeiro ponto
      Console.Write("Informe o x do primeiro ponto: ");
      double x1 = Double.Parse(Console.ReadLine());
      Console.Write("Informe o y do primeiro ponto: ");
      double y1 = Double.Parse(Console.ReadLine());

      // vamos ler os dados do segundo ponto
      Console.Write("Informe o x do segundo ponto: ");
      double x2 = Double.Parse(Console.ReadLine());
      Console.Write("Informe o y do segundo ponto: ");
      double y2 = Double.Parse(Console.ReadLine());

      // vamos obter a distância entre eles
      double distancia = Distancia2d(x1, y1, x2, y2);
      Console.Write("Distância entre os dois pontos: " +
        distancia);

      Console.WriteLine("\nPressione uma tecla para sair...");
      Console.ReadKey();
    }

    // função que permite calcular a distância
    // entre dois pontos no plano (R2)
    static double Distancia2d(double x1, double y1,
                              double x2, double y2) {
      double a = x2 - x1;
      double b = y2 - y1;
      double c = Math.Sqrt(Math.Pow(a, 2) + Math.Pow(b, 2));
      return c;
    }
  }
}

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

Informe o x do primeiro ponto: 3
Informe o y do primeiro ponto: 6
Informe o x do segundo ponto: 9
Informe o y do segundo ponto: 4
Distância entre os dois pontos: 6.324555320336759

Link para compartilhar na Internet ou com seus amigos:

C# ::: Dicas & Truques ::: Data e Hora

Como calcular a diferença de anos, meses ou dias entre duas datas em C# usando a função Subtract() da classe DateTime

Quantidade de visualizações: 21281 vezes
Esta dica mostra como obter a diferença de anos, meses ou dias entre duas datas. O truque aqui é usar o método Subtract() da estrutura DateTime. Este método recebe um objeto DateTime, subtrai seus valores do DateTime atual e retorna um objeto TimeSpan, usada para representar um intervalo de tempo. Veja o código completo:

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

using System;

namespace Estudos {
  class Program {
    static void Main(string[] args) {
      // vamos obter a diferença em anos, meses ou dias entre
      // duas datas
      DateTime data_inicial = new DateTime(2008, 4, 10);  // 10/04/2008
      DateTime data_final = new DateTime(2008, 5, 15);  // 15/05/2008

      // obtém a diferença
      TimeSpan dif = data_final.Subtract(data_inicial);

      // exibe o resultado
      System.Console.WriteLine("Diferença em:\nAnos: " +
        (dif.Days / 365) + "\nMeses: " + (dif.Days / 30) +
        "\nDias: " + dif.Days);

      Console.WriteLine("\n\nPressione uma tecla para sair...");
      Console.ReadKey();
    }
  }
}

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

Diferença em:
Anos: 0
Meses: 1
Dias: 35

Tome cuidado. Este método pode lançar uma exceção do tipo ArgumentOutOfRangeException se os valores fornecidos estiverem fora das faixas permitidas.


C# ::: C# + MySQL ::: MySqlCommand

Como gravar dados em uma tabela MySQL usando INSERT INTO e o comando ExecuteNonQuery() da classe MySqlCommand do C#

Quantidade de visualizações: 1136 vezes
Nesta dica mostrarei como inserir dados em uma tabela MySQL usando o comando SQL INSERT INTO e o comando ExecuteNonQuery() da classe MySqlCommand do C#. A tabela usada no exemplo contém os campos id, titulo, autor, paginas, data_cadastro. O campo id é auto-incremento e o campo data_cadastro é do tipo DATETIME. Por essa razão eu passei os valores NULL para o campo auto-incremento e o valor NOW() para o campo data_cadastro, de forma que a data e hora atual sejam gravadas.

Como se trata de uma operação INSERT, o método ExecuteNonQuery() retorna a quantidade de registros afetados pelo comando. No exemplo eu mostro como obter e exibir este valor.

Veja o código completo para o exemplo (incluindo a conexão com o banco de dados MySQL a partir do C#):

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

using System;
using System.Data;
using System.Windows.Forms;
using MySql.Data.MySqlClient;

namespace EstudosMySQL {
  public partial class Form1 : Form {
    public Form1() {
      InitializeComponent();
    }

    private void button1_Click(object sender, EventArgs e) {
      // objeto de conexão
      MySqlConnection conn = null;

      // string de conexão
      string connStr = "server=localhost;user id=root; " +
        "password=osmar1234; database=estudos; pooling=false";

      try {
        conn = new MySqlConnection(connStr);
        conn.Open();

        if (conn.State == ConnectionState.Open) {
          // primeiro criamos um novo objeto MySqlCommand
          MySqlCommand comando = new MySqlCommand();
          // definimos a conexão para este comando
          comando.Connection = conn;

          // definimos o comando SQL a ser executado 
          comando.CommandText = "INSERT INTO livros (id, titulo, " + 
            autor, paginas, data_cadastro) " +
            "VALUES(NULL, 'JAVA PARA INICIANTES', " + 
            "'OSMAR J. SILVA', 740, NOW())";
          
          // e executamos o comando SQL
          int res = comando.ExecuteNonQuery();
          if (res > 0) {
            MessageBox.Show("Operação realizada com sucesso. " 
              + res + " linhas afetadas.");
          }
          else {
            MessageBox.Show("Deve ter acontecido alguma coisa. " 
              + res + " linhas afetadas.");
          }
        }
      }
      catch (MySqlException ex) {
        MessageBox.Show("Erro: " +
          ex.Message);
      }
    }
  }
}



C# ::: Dicas & Truques ::: Arrays e Matrix (Vetores e Matrizes)

Como retornar o tamanho de um array em C# usando a propriedade Length

Quantidade de visualizações: 7986 vezes
Nesta dica mostrarei como saber a quantidade de elementos em um vetor do C# usando a sua propriedade Length. Por quantidade de elementos nós estamos falando do tamanho do array.

Veja o código C# completo:

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

using System;

namespace Estudos {
  class Program {
    static void Main(string[] args) {
      // cria e inicializa um array de strings
      string[] cidades = {"Goiânia", "São Paulo",
        "Rio de Janeiro", "Curitiba"};

      // obtém a quantidade de elementos no array
      int quant = cidades.Length;
      Console.WriteLine("Este array possui {0} elementos.", quant);

      Console.WriteLine("\n\nPressione uma tecla para sair...");
      Console.ReadKey();
    }
  }
}

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

Este array possui 4 elementos.


Desafios, Exercícios e Algoritmos Resolvidos de C#

Veja mais Dicas e truques de C#

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: C
6º lugar: Delphi
7º lugar: JavaScript
8º lugar: C++
9º lugar: VB.NET
10º lugar: Ruby



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