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: 477 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)
----------------------------------------------------------------------

#include <stdio.h>
#include <stdlib.h>
#include <math.h>

// função que permite calcular a distância
// entre dois pontos no plano (R2)
float distancia2d(float x1, float y1, float x2, float y2);

// função principal do programa
int main(int argc, char *argv[]){
  // variáveis usadas na resolução do problema
  float x1, y1, x2, y2, distancia;
	  
  // vamos ler os dados do primeiro ponto
  printf("Informe o x do primeiro ponto: ");
  scanf("%f", &x1);
  printf("Informe o y do primeiro ponto: ");
  scanf("%f", &y1);
    
  // vamos ler os dados do segundo ponto
  printf("Informe o x do segundo ponto: ");
  scanf("%f", &x2);
  printf("Informe o y do segundo ponto: ");
  scanf("%f", &y2);
    
  // vamos obter a distância entre eles
  distancia = distancia2d(x1, y1, x2, y2);
  printf("Distância entre os dois pontos: %f", distancia);
  
  printf("\n\n");
  system("PAUSE");
  return 0;
}

// função que permite calcular a distância
// entre dois pontos no plano (R2)
float distancia2d(float x1, float y1,
                  float x2, float y2){
  float a = x2 - x1;
  float b = y2 - y1;
  float c = sqrt(pow(a, 2) + 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 ::: Trigonometria - Funções Trigonométricas

Como calcular a área de um círculo em C dado o raio do círculo

Quantidade de visualizações: 8617 vezes
A área de um círculo pode ser calculada por meio do produto entre a constante PI e a medida do raio ao quadrado (r2). Comece analisando a figura abaixo:



Sendo assim, temos a seguinte fórmula:



Onde A é a área, PI equivale a 3,14 (aproximadamente) e r é o raio do círculo.

O raio é a medida que vai do centro até um ponto da extremidade do círculo. O diâmetro é a medida equivalente ao dobro da medida do raio, passando pelo centro do círculo e dividindo-o em duas partes. A medida do diâmetro é 2 * Raio.

Veja agora um código C completo que calcula a área de um círculo mediante a informação do raio:

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

#include <stdio.h>
#include <stdlib.h>
#include <math.h> 
 
// vamos definir o valor de PI
#define PI 3.14159265358979323846 
 
int main(int argc, char *argv[]){
  int raio;
  printf("Informe o raio do círculo: ");
  // efetua a leitura do raio
  scanf("%d", &raio);
  // calcula a área
  double area = PI * pow(raio, 2);
  // mostra o resultado
  printf("A area do círculo de raio %d é igual a %f\n\n", 
    raio, area);
  
  system("PAUSE");  
  return 0;
}

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

Informe o raio do círculo: 5
A area do círculo de raio 5 é igual a 78.539816

A circunferência é um conjunto de pontos que estão a uma mesma distância do centro. Essa distância é conhecida como raio. A circunferência é estudada pela Geometria Analítica e, em geral, em um plano cartesiano. O círculo, que é formado pela circunferência e pelos infinitos pontos que preenchem seu interior, é estudado pela Geometria Plana, pois ele ocupa um espaço e pode ter sua área calculada, diferentemente da circunferência.


C ::: C para Engenharia ::: Geometria Analítica e Álgebra Linear

Como calcular a transposta de uma matriz em C - Curso de C para Geometria Analítica e Álgebra Linear

Quantidade de visualizações: 1015 vezes
A matriz transposta de uma matriz A é a matriz AT. Tal matriz é obtida quando copiamos os elementos da matriz A para uma outra matriz (ou para ela mesma) e trocamos de posição as linhas e colunas. Dessa forma, a primeira linha da matriz A se transforma na primeira coluna da matriz transposta, a segunda linha da matriz A se transforma na segunda coluna da matriz transposta e assim por diante.

Em termos de notação, podemos dizer, de forma algébrica, que:

ATji = Aij

Onde i representa as linhas e j representa as colunas, tanto na matriz original quanto na matriz transposta.

É importante estar atento à quantidade de linhas e colunas na matriz original e na matriz transposta equivalente. Assim, se a matriz original for 3x2, a matriz transposta será 2x3.

Antes de vermos o código C, dê uma olhada na seguinte matriz de duas linhas e três colunas:

\[A = \left[\begin{matrix} 3 & 5 & 7 \\ 1 & 2 & 9 \end{matrix}\right] \]

Sua matriz transposta correspondente é:

\[A^T = \left[\begin{matrix} 3 & 1 \\ 5 & 2 \\ 7 & 9 \end{matrix}\right] \]

E agora veja o código C que declara uma matriz 2x3 e gera a matriz transposta 3x2:

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

#include <stdio.h>
#include <stdlib.h>
#include <locale.h>

int main(int argc, char *argv[]){
  setlocale(LC_ALL,""); // para acentos do português
	
  // vamos declarar e construir uma matrix
  // 2x3 (duas linhas e três colunas
  int matriz[2][3] = {{3, 5, 7}, {1, 2, 9}};
  int i, j;  
    
  // vamos exibir os valores da matriz
  printf("Elementos da matriz:\n");
  for(i = 0; i < 2; i++){
    for(j = 0; j < 3; j++){
      printf("%5d  ", matriz[i][j]);
    }
    printf("\n");
  }
    
  // como temos uma matriz 2x3, a transposta deverá ser
  // 3x2, ou seja, três linhas e duas colunas
  int linhas = 3; // linhas da matriz original
  int colunas = 2; // colunas da matriz original
  int transposta[linhas][colunas]; 
    
  // e agora vamos preencher a matriz transposta
  for(i = 0; i < 2; i++){
    for(j = 0; j < 3; j++){
      transposta[j][i] = matriz[i][j];
    }
  }
    
  // vamos exibir os valores da matriz transposta
  printf("Elementos da matriz transposta:\n");
  for(i = 0; i < 3; i++){
    for(j = 0; j < 2; j++){
      printf("%5d  ", transposta[i][j]);
    }
    printf("\n");
  }
  
  printf("\n\n");
  system("PAUSE");	
  return 0;
}

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

Elementos da matriz:
    3      5      7  
    1      2      9  
Elementos da matriz transposta:
    3      1  
    5      2  
    7      9  



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

Como ordenar os elementos de um vetor (array) usando a função qsort() da linguagem C

Quantidade de visualizações: 947 vezes
A função qsort() da linguagem C permite a ordenação dos elementos de um vetor (array ou matriz unidimensional) mediante o fornecimento de uma função auxiliar definida pelo usuário. Veja seu protótipo:

void qsort(void *base, size_t num, size_t size, 
  int(*comparator)(const void*, const void*)); 


Veja que só precisamos fornecer um ponteiro para o vetor a ser ordenado, a quantidade de elementos contidos no vetor, o tamanho em bytes de cada elemento e a função de comparação. No exemplo abaixo mostramos como ordenar um vetor contendo 9 valores inteiros:

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

#include <stdio.h>
#include <stdlib.h>
 
// função auxiliar que permite comparar dois valores
// durante a ordenação
int comparar(const void *a, const void *b){
  return(*(int*)a - *(int*)b);
}
 
int main(int argc, char *argv[])
{
  int valores[] = {4, 6, 2, 8, 1, 9, 3, 0, 11};
  int i, tamanho = 9;
 
  // imprime o vetor sem a ordenação
  for(i = 0; i < 9; i++){
    printf("%d ", valores[i]);
  }
 
  // vamos ordenar o vetor usando
  qsort(valores, tamanho, sizeof(int), comparar);
 
  // imprime o vetor ordenado
  puts("\n");
  for(i = 0; i < 9; i++){
    printf("%d ", valores[i]);
  }
 
  puts("\n");
  system("pause");
  return 0;
}

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

4 6 2 8 1 9 3 0 11

0 1 2 3 4 6 8 9 11

Pressione qualquer tecla para continuar...


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á 88 usuários muito felizes estudando em nosso site.