Pular para o conteúdo

Campo Elétrico

Este programa plota o gráfico do campo elétrico
gerado por duas caragas elétricas puntiformes.
Roberto Júnior dibetao
Hits: 11.308 Categoria: C/C++ Subcategoria: Miscelânea
  • Download
  • Nova versão
  • Indicar
  • Denunciar

Descrição

Este programa plota o gráfico do campo elétrico
gerado por duas caragas elétricas puntiformes.
Download campo.c Enviar nova versão

Esconder código-fonte

/**
 * @author Roberto Lima da C C Junior
 * @file campo.c
 *
 * @begin Qui Mar 30 2006
 * @copyright (C) 2006 by Roberto Lima
 * @email dibetao@gmail.com

 Este programa plota o gráfico do campo elétrico
 gerado por duas caragas elétricas puntiformes.

 Para gerar o gráfico voce terá que ter o GNUPlot.
 http://www.gnuplot.info/

 Quando o programa for compilado (gcc campo.c -lm -o campo)
 e executado (./campo), será criado um arquivo (dados.dat)
 onde estarão os dados a serem plotados no GNUPLot.

 Então basta executar o Gnuplot e digitar o seguinte comando:

   plot "dados.dat" w vectors;

O será gerado o grafico do Campo Elétrico criado
pelas duas cargas "q1" e "q2" (gráfico vetorial).

 */

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

main()
{
int i,j,k;
int C,q1,q2,x,y;

float E1[4]={0};//Cria o vetor Campo Elétrico E1 e zera
float R1[4]={0,5,0,0};//Posição da Carga 1 (R1)

float E2[4]={0};//Cria o vetor Campo Elétrico E2 e zera
float R2[4]={0,-5,0,0};//Posição da Carga 2 (R2)

float r[4]={0};//Cria vetor "r", que será feita a "varredura" no espaço.

FILE *arq1;//Arquivo de saida dos dados.
arq1= fopen("dados.dat","w+");//Nome do Arquivo de Saida dos dados (será criado).

C=1;//Constante
q1=1; q2=-1;//Valor das Cargas q1 e q2

for (r[1]=-15; r[1]<=15; r[1]++)
for (r[2]=-15; r[2]<=15; r[2]++)
{
E1[1] = (C*q1*(R1[1]-r[1]))/sqrt( pow(R1[1]-r[1],2) + pow(R1[2]-r[2],2));
E1[2] = (C*q1*(R1[2]-r[2]))/sqrt( pow(R1[1]-r[1],2) + pow(R1[2]-r[2],2));

E2[1] = (C*q2*(R2[1]-r[1]))/sqrt( pow(R2[1]-r[1],2) + pow(R2[2]-r[2],2));
E2[2] = (C*q2*(R2[2]-r[2]))/sqrt( pow(R2[1]-r[1],2) + pow(R2[2]-r[2],2));


fprintf(arq1,"\n%f %f %f %f",R1[1]-r[1]+R2[1]-r[1],R1[2]-r[2]+R2[2]-r[2], E1[1]+E2[1], E1[2]+E2[2]);
}

printf("\n");
fclose(arq1);
}
//FIM de "campo.c"

Quadrado Mágico

Molde para balões juninos

Sorteio

Batalha naval em C++

Agenda eletrônica feita em C

#1 Comentário enviado por diegoafrota em 22/04/2006 - 10:37h
Um srcipt muito bom, de alto nível.
Deixo como sugestão, que você procure tornar mais simples o seu programa sem que ela perca sua eficiência, eu sei que você consegue fazer isso.
Um abraço!
#2 Comentário enviado por sombriks em 31/05/2006 - 02:44h
ei, bem legal isso... mas fugindo um pouco, eu gostaria de saber onde vc aprendeu a usar o gcc, eu acho ele muito estranho. tem algum bom tutorial aí?
#3 Comentário enviado por removido em 02/07/2006 - 16:37h
Trabalhaste muito bem com os vetores, parabéns. Tirei várias dúvidas com este sc.
#4 Comentário enviado por removido em 13/04/2013 - 05:13h
Caramba!

Estive vendo Gnuplot e percebo que usando a tal calculadora BC dá prá fazer o gráfico surgir instantaneamente com shellscript. Do mesmo modo funcionaria com o C fazendo o mesmo.
Se bem que deve haver uma API.

Contribuir com comentário

Entre na sua conta para comentar.