Campo Gravitacional
O programa que apresentamos a seguir produz no vídeo uma representação bidimensional do campo gravitacional gerado por uma massa puntiforme de acordo com a Teoria Newtoniana da gravitação.
Teste o programa no WebMSX – The Online MSX Emulator
Sendo M uma massa puntiforme a ser estudada e m uma massa de prova também puntiforme, podemos escrever:
F = G [(M x m)/(d x d)] e F = m x g
Onde:
F é a força de atração entre as duas massas;
d é a distância entre elas;
g é o campo gravitacional gerado por M a uma distância d;
G é a Constante Universal da Gravitação;
Sendo G e M constantes para um corpo, temos:
g = constante / (d x d)
Isso significa que o valor g do campo gravitacional gerado por M depende apenas da distância d.
Considerando as massas num plano XY com M na origem dos eixos, pode-se escrever:
d^2 = X^2 + Y^2
Evidentemente, estamos considerando apenas o campo gravitacional gerado ao longo do plano XY, ou seja, impomos a coordenada Z como sendo zero. Desta forma, temos:
g = g(d x d)
Portanto:
g = g(X x X + Y x Y)
Sendo g uma função de duas variáveis, podemos então usar o plano XY para mapear as posições ao redor de M, e um eixo ortogonal Z para indicar o campo gravitacional local.
O programa inicia pedindo o valor da massa que gerará o campo gravitacional. Logo após, ele já começa a traçar o gráfico correspondente. Para parar a execução em qualquer instante, tecle CONTROL+STOP.
Experimente valores de massa entre 50 e 5000 e veja que efeitos diferentes podem ocorrer. O que acontece quando a massa é zero?
Fonte: Livro Coleção de Programas para MSX Volume 2
Editora: Aleph
Ano: 1986
Autor: Milton Maldonado Jr.
Digitação: Renato Faria Lopes
Código fonte
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
100 ' Campo Gravitacional 110 ' Milton Maldonado Jr. 120 ' 130 INPUT"Qual a massa";M:IFM<0THEN130 140 COLOR 15,4,4:SCREEN 2:DIM A%(255):FOR X=0 TO 255:A%(X)=200:NEXT X:BEEP 150 D=0:FOR Y=0 TO 110 STEP5:Y1=Y 160 FOR X=0 TO 130:X1=X:GOSUB 200:NEXT X:D=D+.75 170 FOR K=Y+1 TO Y+4:Y1=K:FOR X=0 TO 130 STEP 5:X1=X:GOSUB 200:NEXT X:D=D+.75:NEXT K,Y 180 Y=Y+1:FOR X=0 TO 130:X1=X:GOSUB 200:NEXT X 190 GOTO 190 200 XF=(X1-65)/10:YF=(Y1-60)/8 210 IF XF=0 AND YF=0 THEN RETURN 220 Z=M/(XF^2+YF^2):ZT=Z-Y1+180 230 IF ZT>A%(16+X1+D) THEN RETURN 240 PSET(16+X1+D,ZT):A%(16+X1+D)=ZT:RETURN |