goLaTeX - Mein LaTeX-Forum

Mein LaTeX-Forum


Login  | Registrieren
Forum
      Option
[Erweitert]
  • Diese Seite weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

(tikz) intersections als Koordinaten verwenden

 

pointloma
Forum-Anfänger
Forum-Anfänger

Beiträge: 14
Anmeldedatum: 23.04.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 03.05.2017, 15:13     Titel: (tikz) intersections als Koordinaten verwenden
  Antworten mit Zitat      
Liebes Forum,

ich fühle mich ein wenig schlecht, weil ich hier immer nur nach Hilfe fragen, ohne selbst großartig zu etwas beitragen zu können. Ich hoffe ihr nehmt mir das nicht übel.

Mit viel Trial and Error (und Code von anderen übernehmen) bin ich zu folgendem Code gekommen, der soweit auch funktioniert, wie ich das gerne hätte.



Code • Öffne in Overleaf
\documentclass[12pt,a4paper]{scrreprt}

\usepackage[utf8]{inputenc} %Eingabekodierung
\usepackage[german]{babel} %deutscher Sprachraum
\usepackage[T1]{fontenc} %Ausgabefonts

\usepackage{tikz}
\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);
   }
   
\end{tikzpicture}
\end{document}


Im Anhang ist ein Bild, mit dem, was mir noch fehlt und was ich nicht hinbekomme. Auch mit der Dokumentation bin ich nicht weiter gekommen. Alle meine Versuche sind bisher gescheitert, weswegen ich mich nun an euch wende.

Danke für die Hilfe!

Minimalbeispiel.pdf
 Beschreibung:

Download
 Dateiname:  Minimalbeispiel.pdf
 Dateigröße:  64.37 KB
 Heruntergeladen:  52 mal
Private Nachricht senden Benutzer-Profile anzeigen

markusv
Forum-Guru
Forum-Guru

Beiträge: 250
Anmeldedatum: 03.09.15
Wohnort: Leipzig
Version: ---
     Beitrag Verfasst am: 04.05.2017, 12:30     Titel: Re: (tikz) intersections als Koordinaten verwenden
  Antworten mit Zitat      
pointloma hat Folgendes 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.

Code • Öffne in Overleaf

\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}
 

_________________

Wäre Microsoft Word für das Schreiben von Büchern entwickelt worden,
würde es Microsoft Books heißen.

Unkomplizierte und schnelle LaTeX-Hilfe, bspw. Erstellung von Vorlagen und Bewerbungen:
Help-LaTeX@web.de
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden

Bartman
Forum-Meister
Forum-Meister


Beiträge: 899
Anmeldedatum: 16.07.09
Wohnort: Hessische Provinz
Version: Windows 7 64 Bit MiKTeX 2.9 32-Bit
     Beitrag Verfasst am: 05.05.2017, 10:17     Titel:
  Antworten mit Zitat      
Das Beispiel von markusv hat mich zu weiteren Änderungen inspiriert:

Code • Öffne in Overleaf
\documentclass[tikz, border=10pt]{standalone}

\usetikzlibrary{angles, intersections}

\begin{document}
\begin{tikzpicture}
\newcommand*{\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
\renewcommand*{\angle}{180}
\newcommand*{\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);
   \path[name intersections={of=atmo and ray, sort by=ray}
] (intersection-1)
      coordinate (atmoray\x);% <- eingefügt
   \draw[->, name intersections={of=earth and ray, sort by=ray}] (start) -- (intersection-1)
      coordinate (earthray\x);
}
\begin{scope}[
   anglestyle/.style={
      angle eccentricity=1.5,
      draw,
      angle radius=\rad
   
},
   thick,
   bend angle=10% <- eingefügt
]
\draw [red] pic [anglestyle] {angle = earthray-4--O--earthray-3};
\draw [orange] pic [anglestyle] {angle = earthray-1--O--earthray0};
\draw [red] (earthray-4) to[bend left] (earthray-3);
\draw [orange] (earthray-1) to[bend left] (earthray0);
\draw [->, red] (atmoray-4) -- (earthray-4);% <- geändert
\draw [->, orange] (atmoray-1) -- (earthray-1);% <- geändert
\end{scope}
\end{tikzpicture}
\end{document}
Private Nachricht senden Benutzer-Profile anzeigen

pointloma
Forum-Anfänger
Forum-Anfänger

Beiträge: 14
Anmeldedatum: 23.04.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 08.05.2017, 11:30     Titel:
  Antworten mit Zitat      
Ich danke euch beiden wahnsinnig! Das hilft mir enorm weiter. Wenn es euch interessiert, werde ich den fertigen Code dann noch hochladen.
Private Nachricht senden Benutzer-Profile anzeigen

Neues Thema eröffnen Neue Antwort erstellen



Options and Permissions
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum nicht posten
Du kannst Dateien in diesem Forum herunterladen
.

goLaTeX ist Teil der goForen
goForen.de goMATLAB.de goLaTeX.de goPCB.de


  Impressum | FAQ | goLaTeX RSS Button RSS-Feed

Copyright © 2008 - 2017 goLaTeX.de