Datei:Animation Hertzscher Dipol.ogv

Datei:Animation Hertzscher Dipol.ogv

Originaldatei(Ogg-Theora-Videodatei, Länge: 40 s, 1.600×900 Pixel, 956 kbps insgesamt)

Diese Datei stammt aus Wikimedia Commons und kann von anderen Projekten verwendet werden. Die Beschreibung von deren Dateibeschreibungsseite wird unten angezeigt.

Beschreibung

Beschreibung
Deutsch: Animation zum Hertzschem Dipol mit E- und H-Feld.
Datum
Quelle Eigenes Werk
Urheber Menner
Andere Versionen

Source code (GNU Octave)

#!/usr/bin/octave -qf
%
% 2014
%


%
% calcE
%
% t time
% r radius (might be an array)
% E_theta E field
%

function E_theta = calcE(r, t)

  % r 

  global parameters;
  
  omega = parameters.omega;
  epsilon = parameters.epsilon;
  lambda = parameters.lambda;
  c = parameters.c;

  roh = 2 * pi() * r / lambda;

  E_theta_1 = ( (1 ./ roh) - (1 ./ roh.^3) ) .* cos(roh .- omega*t);
  E_theta_2 = (1 ./roh.^2) .* sin(roh .- omega*t) * -1.;
  E_koeff = omega^3 / (4 * pi() * epsilon * c^3);
  E_theta = -1 * E_koeff * (E_theta_1+E_theta_2);
  
endfunction

%
% calcH
%
% t time
% r radius (might be an array)
% H_theta H field
%

function H_phi = calcH(r, t)

  % r 

  global parameters;
  
  omega = parameters.omega;
  epsilon = parameters.epsilon;
  lambda = parameters.lambda;
  c = parameters.c;

  roh = 2 * pi() * r / lambda;

  H_phi_1 = (1 ./ roh) .* cos(roh .- omega*t);
  H_phi_2 = (1 ./roh.^2) .* sin(roh .- omega*t) * -1.;
  H_koeff = omega^3 / (4 * pi() * epsilon * c^2);
  H_phi = -1 * H_koeff * (H_phi_1 + H_phi_2);
  
endfunction





%
%
% M A I N
%
%

begin_cputime = time();

global parameters;


parameters.framerate = 20;
parameters.duration = 40;
parameters.cycles = 4;
%parameters.framerate = 20;
%parameters.duration = 1;
%parameters.cycles = 1;
parameters.ylim = 1;
parameters.filename = "animation_hertzscher_dipol";
%parameters.Dimensions = "-S800,450";
parameters.Dimensions = "-S1600,900";
parameters.steps = 50;

parameters.linewidth = 2;
%parameters.plot_E = "r;E-Feld;";
%parameters.plot_H = "b;H-Feld;";
parameters.plot_E = "r;E field;";
parameters.plot_H = "b;H field;";
parameters.plot_decay = "k;1/r;";
%parameters.plot_Radius = "Radius normiert zur Wellenlaenge";
%parameters.plot_Amp = "Amplitude normiert bei Radius einer Wellenlaenge";
parameters.plot_Radius = "Radius normalized to wave length";
parameters.plot_Amp = "Amplitude normalized at radius of one wave length";


parameters.f = 0.1; % Hz
parameters.omega = 2 * pi() * parameters.f;
parameters.epsilon = 8.85418781762e-12; % 
parameters.c = 3e8; % m/s
parameters.lambda = parameters.c / parameters.f;

parameters.width = parameters.lambda * 3.; % 3 * wave length

parameters




r = 0:parameters.lambda/parameters.steps:parameters.width;
r_Norm = r ./ parameters.lambda;

t_max = parameters.cycles/parameters.f
%t_schritt = parameters.f/parameters.framerate;
t_schritt = t_max/(parameters.duration*parameters.framerate);
Counter = 1;

Frames = t_max / t_schritt

E_Norm = parameters.omega^3 / (4 * pi() * parameters.epsilon * parameters.c^3);
E_Norm = E_Norm / (2 * pi());

H_Norm = parameters.omega^3 / (4 * pi() * parameters.epsilon * parameters.c^2);
H_Norm = H_Norm / (2*pi());

for t = 0:t_schritt:t_max
  close();

  E = calcE(r, t);
  E = E / E_Norm;

  H = calcH(r, t);
  H = H / H_Norm;
  
  decay = 1 ./ r_Norm;
  
  plot(r_Norm(1,3:end), E(1,3:end), parameters.plot_E, "linewidth", parameters.linewidth);
  hold("on");
  plot(r_Norm(1,3:end), H(1,3:end), parameters.plot_H, "linewidth", parameters.linewidth);
  plot(r_Norm(1,3:end), decay(1,3:end), parameters.plot_decay, "linewidth", parameters.linewidth);
  plot(r_Norm(1,3:end), -1*decay(1,3:end), "color", "k", "linewidth", parameters.linewidth);
  ylim([-15, 15]);
  xlabel(parameters.plot_Radius);
  ylabel(parameters.plot_Amp);
  set (gca(), "linewidth", parameters.linewidth);

  filename = ["./png/", parameters.filename, "-", num2str(Counter, "%04i"), ".png"]
  print(filename, "-dpng", parameters.Dimensions)
  
  Counter += 1;
endfor

printf("Total cpu time: %f seconds\n", time()-begin_cputime);
printf("Finished\n");

Convenience script

#!/bin/sh

start=`date`;

framerate=20
#% framerate=2
name="animation_hertzscher_dipol"

rm ./png -rf
mkdir ./png

octave ./dipol_feld_diagramm.m


rm ./yuv -rf
mkdir ./yuv

png2yuv -j ./png/$name-%04d.png -f $framerate -I p -b 1 > ./yuv/out.yuv

rm ./$name.ogv

./ffmpeg2theora-0.29.linux32.bin ./yuv/out.yuv -F $framerate -v 9 -o ./$name.ogv;

end=`date`;
echo Start: $start;
echo End: $end;

Lizenz

Ich, der Urheber dieses Werkes, veröffentliche es unter der folgenden Lizenz:
Creative Commons CC-Zero Diese Datei wird unter der Creative-Commons-Lizenz „CC0 1.0 Verzicht auf das Copyright“ zur Verfügung gestellt.
Die Person, die das Werk mit diesem Dokument verbunden hat, übergibt dieses weltweit der Gemeinfreiheit, indem sie alle Urheberrechte und damit verbundenen weiteren Rechte – im Rahmen der jeweils geltenden gesetzlichen Bestimmungen – aufgibt. Das Werk kann – selbst für kommerzielle Zwecke – kopiert, modifiziert und weiterverteilt werden, ohne hierfür um Erlaubnis bitten zu müssen.

Kurzbeschreibungen

Ergänze eine einzeilige Erklärung, was diese Datei darstellt.

In dieser Datei abgebildete Objekte

Motiv

application/ogg

e817f3d126f3dd6b90261e0d12cc7d59318f9bb4

4.784.711 Byte

40,05 Sekunde

900 Pixel

1.600 Pixel

Dateiversionen

Klicke auf einen Zeitpunkt, um diese Version zu laden.

Version vomVorschaubildMaßeBenutzerKommentar
aktuell16:27, 12. Sep. 201440 s, 1.600 × 900 (4,56 MB)wikimediacommons>Mennerminor modifications

Die folgende Seite verwendet diese Datei:

Metadaten

Die News der letzten Tage