Python ::: Python para Engenharia ::: Geometria Analítica e Álgebra Linear |
Como calcular a distância entre dois pontos no plano em Python - Python para Geometria Analítica e Álgebra LinearQuantidade de visualizações: 11092 vezes |
|
Como calcular a Distância Euclidiana entre dois pontos usando Python. Em várias aplicações envolvendo geometria, principalmente no desenvolvimento de jogos em Python, é 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 Python completo que lê as coordenadas dos dois pontos e mostra a distância entre eles:
import math
# função que permite calcular a distância
# entre dois pontos no plano (R2)
def distancia2d(x1, y1, x2, y2):
a = x2 - x1
b = y2 - y1
c = math.sqrt(math.pow(a, 2) + math.pow(b, 2))
return c
# função principal do programa
def main():
# vamos ler os dados do primeiro ponto
x1 = float(input("Informe o x do primeiro ponto: "))
y1 = float(input("Informe o y do primeiro ponto: "))
# vamos ler os dados do segundo ponto
x2 = float(input("Informe o x do segundo ponto: "))
y2 = float(input("Informe o y do segundo ponto: "))
# vamos obter a distância entre eles
distancia = distancia2d(x1, y1, x2, y2)
print("Distância entre os dois pontos: %0.2f" % distancia);
if __name__== "__main__":
main()
Ao executarmos este código Python 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.32 |
Delphi ::: VCL - Visual Component Library ::: TEdit |
Como definir o conteúdo de um TEdit do Delphi em tempo de execução usando a função SendMessage() da API do Windows e a mensagem WM_SETTEXTQuantidade de visualizações: 11724 vezes |
|
Embora o Delphi já nos forneça as ferramentas necessárias para definir o conteúdo de um TEdit em tempo de execução, é importante saber como realizar esta tarefa usando a API do Windows. Para isso, podemos usar a função SendMessage() em combinação com a mensagem WM_SETTEXT. A função SendMessage() da API do Windows possui a seguinte assinatura em C/C++: LRESULT SendMessage( HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam ); No arquivo Windows.pas podemos encontrar o protótipo e corpo desta função convertidos para Object Pascal:
// Protótipo
{$EXTERNALSYM SendMessage}
function SendMessage(hWnd: HWND; Msg: UINT; wParam: WPARAM;
lParam: LPARAM): LRESULT; stdcall;
// Implementação
function SendMessage; external user32 name 'SendMessageW';
Note que precisamos de um HWND (Handle) para a caixa de texto. Feito isso só precisamos enviar a mensagem WM_SETTEXT juntamente com o conteúdo a ser exibido no controle. Veja: procedure TForm1.Button1Click(Sender: TObject); var texto: String; begin // conteúdo a ser definido para a caixa de texto texto := 'Veja isso'; // vamos definir o conteúdo usando a função SendMessage // fornecendo a mensagem WM_SETTEXT SendMessage(Edit1.Handle, WM_SETTEXT, 0, Integer(PChar(texto))); end; Veja que o parâmetro wParam da função SendMessage não é usado quando a mensagem é WM_SETTEXT. Desta forma só precisamos fornecer o valor 0. |
PHP ::: Dicas & Truques ::: Arquivos e Diretórios |
Curso de PHP - Como obter a quantidade de linhas em um arquivoQuantidade de visualizações: 10106 vezes |
|
Neste exemplo veremos como abrir um arquivo texto usando a função file() da linguagem PHP e em seguida vamos obter a quantidade de linhas neste arquivo. Veja o código completo para o exemplo: <html> <head> <title>Estudando PHP</title> </head> <body> <?php // define o nome do arquivo a ser lido $arquivo = 'dados.txt'; // obtém todas as linhas do arquivo $linhas = file($arquivo); // usa a função count() para obter a quantidade de // linhas $quant = count($linhas); echo "Este arquivo contém " . $quant . " linhas"; ?> </body> </html> Ao executar este código PHP nós teremos o seguinte resultado: Este arquivo contém 4 linhas |
C++ ::: Dicas & Truques ::: Matemática e Estatística |
Como calcular desvio padrão em C++ - C++ para Matemática e EstatísticaQuantidade de visualizações: 1229 vezes |
|
Em Matemática e Estatística, o Desvio padrão (em inglês: Standard Deviation) é uma medida de dispersão, ou seja, é uma medida que indica o quanto um conjunto de dados é uniforme. Quando o desvio padrão é baixo, isso quer dizer que os dados do conjunto estão mais próximos da média. Como calcular o desvio padrão de um conjunto de dados? Vamos começar analisando a fórmula mais difundida na matemática e na estatística: \[\sigma = \sqrt{ \frac{\sum_{i=1}^N (x_i -\mu)^2}{N}}\] Onde: a) __$\sigma__$ é o desvio; b) __$x_i__$ é um valor qualquer no conjunto de dados na posição i; c) __$\mu__$ é a média aritmética dos valores do conjunto de dados; d) N é a quantidade de valores no conjunto. O somatório dentro da raiz quadrada nos diz que devemos somar todos os elementos do conjunto, desde a posição 1 até a posição n, subtrair cada valor pela média do conjunto e elevar ao quadrado. Obtida a soma, nós a dividimos pelo tamanho do conjunto. Veja o código C++ completo que obtém o desvio padrão a partir de um conjunto de dados contendo quatro valores:
#include <iostream>
#include <math.h>
using namespace std;
// função principal do programa
int main(int argc, char *argv[]){
// conjunto dos dados
double conjunto[] = {10, 30, 90, 30};
double soma = 0.0; // soma dos elementos
double desvio_padrao = 0.0; // desvio padrão
int tam = 4; // tamanho dos dados
double media;
// vamos somar todos os elementos
for(int i = 0; i < tam; i++){
soma = soma + conjunto[i];
}
// agora obtemos a média do conjunto de dados
media = soma / tam;
// e finalmente obtemos o desvio padrão
for(int i = 0; i < tam; i++){
desvio_padrao = desvio_padrao + pow(conjunto[i] - media, 2);
}
// mostramos o resultado
cout << "Desvio Padrão Populacional: " << sqrt(desvio_padrao / tam);
cout << "\nDesvio Padrão Amostral: " << sqrt(desvio_padrao / (tam - 1));
cout << "\n" << endl;
system("PAUSE"); // pausa o programa
return EXIT_SUCCESS;
}
Ao executar este código C++ nós teremos o seguinte resultado: Desvio Padrão Populacional: 30.0 Desvio Padrão Amostral: 34.64101615137755 Veja que, para calcular o Desvio Padrão Populacional, nós dividimos o somatório pela quantidade de elementos no conjunto, enquanto, para calcular o Desvio Padrão Amostral, nós dividimos o somatório pela quantidade de elementos - 1 (cuidado com a divisão por zero no caso de um conjunto com apenas um elemento). |
Nossas 20 dicas & truques de programação mais populares |
Nossas 20 dicas & truques de programação mais recentes |
Últimos Projetos e Códigos Fonte Liberados Para Apoiadores do Site |
|
Python - Como criar o jogo Pedra, Papel, Tesoura em Python - Jogo completo em Python com código comentado |
Últimos Exercícios Resolvidos |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
|
1º lugar: Java |






