von markusv » Do 4. Mai 2017, 12:30
pointloma hat geschrieben:
Mit viel Trial and Error (und Code von anderen übernehmen)
Habe mich auch mal auf diesen Pfad begeben und ein wenig dazu geschmissen.
Die Kreisbögen auf der "Erdoberfläche" sind soweit klar, die Bögen zurück sind zumindest an den Punkten ausgerichtet.
Bei den Pfeilen und vor allem der Pfeillänge bin ich noch ein wenig unklar.
Am besten wäre es, die Schnittpunkte mit der Atmosphäre als Koordinaten zu haben, allerdings fehlen mir dazu gerade die Werkzeuge bzw. der nötige Grips, um es zu berechnen!
Evtl. hilft es ja als weiterer Ansatz.
\documentclass[12pt,a4paper]{scrreprt}
\usepackage[utf8]{inputenc} %Eingabekodierung
\usepackage[ngerman]{babel} %deutscher Sprachraum
\usepackage[T1]{fontenc} %Ausgabefonts
\usepackage{tikz}
\usetikzlibrary{plotmarks} %ergänzt
\usetikzlibrary{angles} %ergänzt
\usetikzlibrary{intersections}
\begin{document}
\begin{tikzpicture}
\def\rad{4cm}
\coordinate (O) at (0,0);
\coordinate (N) at (0,\rad);
%Atmosphäre
\filldraw[color=gray!10, name path=atmo] (O) circle [radius=\rad+1cm];
%Erde
\filldraw[color=blue!20, name path=earth] (O) circle [radius=\rad];
%Äquator
\draw[dashed]
(\rad,0) arc [start angle=0,end angle=180,x radius=\rad,y radius=5mm];
\draw
(\rad,0) arc [start angle=0,end angle=-180,x radius=\rad,y radius=5mm];
%Solarstrahlung
\def\angle{180}
\def\width{9cm}
\path (\angle:9cm) coordinate(light) ++(\angle+90:0.5*\width) -- +(\angle-90:\width) ;
\foreach \x in {-4,...,4} {
\path[name path=ray,overlay] (light) ++(\angle+90:\x*\width/9) coordinate(start) -- +(180+\angle:10cm);
\draw[->, name intersections={of=earth and ray, sort by=ray}] (start) -- (intersection-1) coordinate(strahl\x);
;
}
\tikzset{anglestyle/.style={angle eccentricity=1.5, draw, angle radius=\rad}}
\draw [red] pic [anglestyle] {angle = strahl-4--O--strahl-3};
\draw [orange] pic [anglestyle] {angle = strahl-1--O--strahl0};
\draw [red] (strahl-4) to[bend left] (strahl-3);
\draw [orange] (strahl-1) to[bend left] (strahl0);
\draw[<-, red] (strahl-4) --++(-3,0);
\draw[<-, orange] (strahl-1) --++(-1,0);
\end{tikzpicture}
\end{document}
[quote="pointloma"]
Mit viel Trial and Error (und Code von anderen übernehmen)[/quote]
Habe mich auch mal auf diesen Pfad begeben und ein wenig dazu geschmissen.
Die Kreisbögen auf der "Erdoberfläche" sind soweit klar, die Bögen zurück sind zumindest an den Punkten ausgerichtet.
Bei den Pfeilen und vor allem der Pfeillänge bin ich noch ein wenig unklar.
Am besten wäre es, die Schnittpunkte mit der Atmosphäre als Koordinaten zu haben, allerdings fehlen mir dazu gerade die Werkzeuge bzw. der nötige Grips, um es zu berechnen!
Evtl. hilft es ja als weiterer Ansatz.
[code]
\documentclass[12pt,a4paper]{scrreprt}
\usepackage[utf8]{inputenc} %Eingabekodierung
\usepackage[ngerman]{babel} %deutscher Sprachraum
\usepackage[T1]{fontenc} %Ausgabefonts
\usepackage{tikz}
\usetikzlibrary{plotmarks} %ergänzt
\usetikzlibrary{angles} %ergänzt
\usetikzlibrary{intersections}
\begin{document}
\begin{tikzpicture}
\def\rad{4cm}
\coordinate (O) at (0,0);
\coordinate (N) at (0,\rad);
%Atmosphäre
\filldraw[color=gray!10, name path=atmo] (O) circle [radius=\rad+1cm];
%Erde
\filldraw[color=blue!20, name path=earth] (O) circle [radius=\rad];
%Äquator
\draw[dashed]
(\rad,0) arc [start angle=0,end angle=180,x radius=\rad,y radius=5mm];
\draw
(\rad,0) arc [start angle=0,end angle=-180,x radius=\rad,y radius=5mm];
%Solarstrahlung
\def\angle{180}
\def\width{9cm}
\path (\angle:9cm) coordinate(light) ++(\angle+90:0.5*\width) -- +(\angle-90:\width) ;
\foreach \x in {-4,...,4} {
\path[name path=ray,overlay] (light) ++(\angle+90:\x*\width/9) coordinate(start) -- +(180+\angle:10cm);
\draw[->, name intersections={of=earth and ray, sort by=ray}] (start) -- (intersection-1) coordinate(strahl\x);
;
}
\tikzset{anglestyle/.style={angle eccentricity=1.5, draw, angle radius=\rad}}
\draw [red] pic [anglestyle] {angle = strahl-4--O--strahl-3};
\draw [orange] pic [anglestyle] {angle = strahl-1--O--strahl0};
\draw [red] (strahl-4) to[bend left] (strahl-3);
\draw [orange] (strahl-1) to[bend left] (strahl0);
\draw[<-, red] (strahl-4) --++(-3,0);
\draw[<-, orange] (strahl-1) --++(-1,0);
\end{tikzpicture}
\end{document}
[/code]