Hallo zusammen, ich möchte in meiner Bachelorarbeit eine Zeichnung haben, in der zwei Punkte Wellen aussenden. Diese Wellen sollen Kreise sein. Die Kreise werden sich bei zunehmendem Radius schneiden. Soweit alles kein Problem, doch ich würde gerne dass ich bestimmte Schnittpunkte der Kreise deklariere, durch die eine Kurve verläuft. Dazu habe ich momentan von jedem Punkt aus sieben Kreise mit steigendem Radius(immer +1) gezeichnet. Ich würde gerne von P1 den zweiten Kreise geschnitten vom P2 fünften Kreis, dann P1 dritter Kreis mit dem P2 sechsten Kreis usw. Ist sowas ohne weiteres realisierbar? P.S. ich hatte arc mit den Winkeln verwendet, weil ich noch nicht sicher bin ob und wie die Kreise am Rand abgeschnitten werden. Hier mein Quelltext soweit: Open in Online-Editor
\documentclass[12pt,a4paper,oneside]{book} \usepackage{pst-all} \usepackage{tikz} \usetikzlibrary{arrows} \usetikzlibrary{shapes} \usetikzlibrary{decorations.pathmorphing} \usetikzlibrary{decorations.pathreplacing} \usetikzlibrary{decorations.shapes} \usetikzlibrary{decorations.text} \begin{document} \begin{figure} \begin{tikzpicture} \color{blue} \fill(0.8, 8.2) -- (0.8, 7.8) -- (1.2, 7.8) -- (1.2,8.2) -- cycle; \draw[line width=1.5pt](1, 7) arc (-90:270:1); \draw[line width=1.5pt](1, 6) arc (-90:270:2); \draw[line width=1.5pt](1, 5) arc (-90:270:3); \draw[line width=1.5pt](1, 4) arc (-90:270:4); \draw[line width=1.5pt](1, 3) arc (-90:270:5); \draw[line width=1.5pt](1, 2) arc (-90:270:6); \color{green} \fill(7.8, 8.2) -- (7.8, 7.8) -- (8.2, 7.8) -- (8.2,8.2) -- cycle; \draw[line width=1.5pt](8, 9) arc (90:450:1); \draw[line width=1.5pt](8, 10) arc (90:450:2); \draw[line width=1.5pt](8, 11) arc (90:450:3); \draw[line width=1.5pt](8, 12) arc (90:450:4); \draw[line width=1.5pt](8, 13) arc (90:450:5); \draw[line width=1.5pt](8, 14) arc (90:450:6); \draw[line width=1.5pt](8, 15) arc (90:450:7); \color{red} %\fill(2.5, 8.5) -- (2.5, 7.5) -- (3.5, 7.5) -- (3.5,8.5) -- cycle; \end{tikzpicture} \caption{Aufbau der Hyperbelnavigation} \label{Abbildung Hyperbel} \end{figure} \end{document} gefragt 11 Dez '15, 13:49 racoon9 |
Suchst Du etwas wie: Code: Open in Online-Editor
\documentclass[12pt,a4paper,oneside]{book} \usepackage{tikz} \usetikzlibrary{intersections} \begin{document} \begin{figure} \begin{tikzpicture}[ p1/.style = { color = blue }, p2/.style = { color = green }, punkt/.style = { fill, inner sep = 2mm }, quelle/.style = { punkt }, schnittpunkt/.style = { punkt, red }, kreis/.style = { line width = 1.5pt } ] % Quellen festlegen \node[p1,quelle](p1) at (1,8) {}; \node[p2,quelle](p2) at (8,8) {}; % Beschneiden, d.h . Beschränkung des Zeichenbereiches \clip ([shift={(-3,-8)}]p1) rectangle ([shift={(3,8)}]p2); % Zeichnen der Kreise \foreach \i in {1,2} {\foreach \r in {1, ...,12} \draw[p\i,kreis,name path global=p\i-k\r](p\i) circle [radius=\r];} % Markieren ausgewählter Schnittpunkte \foreach \kreisA/\kreisB in { p1-k2/p2-k5, p1-k3/p2-k6, p1-k4/p2-k7, p1-k5/p2-k8, p1-k6/p2-k9, p1-k7/p2-k10, p1-k8/p2-k11} { \path [name intersections = {of = {\kreisA} and {\kreisB}, total = \t}, nodes=schnittpunkt] \foreach \s in {1,...,\t} { (intersection-\s) node {}}; } \end{tikzpicture} \caption{Aufbau der Hyperbelnavigation} \label{Abbildung Hyperbel} \end{figure} \end{document} Wenn die zu markierenden Schnittpunkte wie in obigem Beispiel noch einer Systematik unterliegen, lässt sich der Code noch etwas weiter verkürzen: Open in Online-Editor
% Markieren ausgewählter Schnittpunkte \foreach[count=\ii from 5] \i in {2,...,8} { \path [name intersections = {of = {p1-k\i} and {p2-k\ii}, total = \t}] \foreach \s in {1,...,\t} { (intersection-\s) node [schnittpunkt] {}}; } Update Wenn die markierten Punkte noch verbunden werden sollen, dann muss man die Nodes eindeutig benennen. Das lässt sich in der Schleife mit erledigen. Ich würde dafür die Laufvariable Open in Online-Editor
% Markieren ausgewählter Schnittpunkte \foreach[count=\ii from 5] \i in {2,...,8} { \path [name intersections = {of = {p1-k\i} and {p2-k\ii}, total = \t}] \foreach \s in {1,...,\t} { (intersection-\s) node [schnittpunkt] (\i-\s) {}}; Damit kann man die Nodes hinterher wieder in einer Schleife verbinden: Open in Online-Editor
% Markierungen verbinden \foreach \s in {1,2}{ \draw[very thin] (2-1)--(3-\s); \foreach[count=\j from 3] \i in {4,...,8} \draw[very thin] (\j-\s)--(\i-\s); } Code: Open in Online-Editor
\documentclass[12pt,a4paper,oneside]{book} \usepackage{tikz} \usetikzlibrary{intersections} \begin{document} \begin{figure} \begin{tikzpicture}[ p1/.style = { color = blue }, p2/.style = { color = green }, punkt/.style = { fill, inner sep = 2mm }, quelle/.style = { punkt }, schnittpunkt/.style = { punkt, red }, kreis/.style = { line width = 1.5pt }, verbindung/.style = { very thin } ] % Quellen festlegen \node[p1,quelle](p1) at (1,8) {}; \node[p2,quelle](p2) at (8,8) {}; % Beschneiden, d.h . Beschränkung des Zeichenbereiches \clip ([shift={(-3,-8)}]p1) rectangle ([shift={(3,8)}]p2); % Zeichnen der Kreise \foreach \i in {1,2} {\foreach \r in {1, ...,12} \draw[p\i,kreis,name path global=p\i-k\r](p\i) circle [radius=\r];} % Markieren ausgewählter Schnittpunkte \foreach[count=\ii from 5] \i in {2,...,8} { \path [name intersections = {of = {p1-k\i} and {p2-k\ii}, total = \t}] \foreach \s in {1,...,\t} { (intersection-\s) node [schnittpunkt] (\i-\s) {}}; } % Markierungen verbinden \foreach \s in {1,2}{ \draw[verbindung] (2-1)--(3-\s); \foreach[count=\j from 3] \i in {4,...,8} \draw[verbindung] (\j-\s)--(\i-\s); } \end{tikzpicture} \caption{Aufbau der Hyperbelnavigation} \label{Abbildung Hyperbel} \end{figure} \end{document} beantwortet 13 Dez '15, 03:18 esdd 1
Sehr schön! Ich habe leicht modifiziert und eine for-Schleife für die berechneten Schnittpunkte ergänzt.
(13 Dez '15, 13:51)
stefan ♦♦
Danke! Auf die Klammern um die Koordinatenangaben für
(13 Dez '15, 14:12)
esdd
Ja, das Parsen des "and" benötigt die Leerzeichen um "and", was die Makros verschlucken würden. Die Klammern verhindern das.
(13 Dez '15, 14:42)
stefan ♦♦
Wow genau sowas habe ich gesucht. Danke tausend mal!!! Wäre es jetzt vielleicht noch möglich die Punkte mit einer dünnen Linie zu verbinden?
(13 Dez '15, 16:36)
racoon9
@racoon9 Ich habe Deine "Antwort" in einen Kommentar umgewandelt. Du kannst gern stets direkt die Frage editieren und Zusätze einfügen. Hier sind Antworten stets "echte" Antworten, keine Gespräche oder Rückfragen oder Zusatzinfos, sondern Lösungen. Editieren der Frage ist jederzeit möglich und erwünscht. Das verbessert die Übersicht erheblich für die Archivierung der Lösungen. Ungewohnt und anders als in Webforen, doch innovativ und nutzbarer. Bemerkungen gern wie hier als Kommentare.
(13 Dez '15, 17:57)
stefan ♦♦
@racoon9 Stelle die Folgefrage doch bitte als neue, separate Frage. Das vereinfacht das Archivieren der Lösungen. Gern mit Link hierher, damit man den Kontext sieht.
(13 Dez '15, 17:58)
stefan ♦♦
@racoon9 Ich habe jetzt noch eine Möglichkeit für die Verbindung der Linien ergänzt. Wenn man Deine Frage genau liest, hast Du dort ja sogar schon nach der Verbindung gefragt.
(13 Dez '15, 23:09)
esdd
Vielen lieben Dank! gibt es irgendwo ein vernünftiges Tutorial oder eine Dokumentation die so etwas lehrt? Ich habe bisher nur die simpelsten Dokumentationen gesehen und dann wieder total spezifische, etwas dazwischen habe ich nicht gefunden. Ich würde dann das Thema abschließen wenn ich wüsste wie das geht :)
(14 Dez '15, 15:45)
racoon9
1
@racoon9 Ich verwende hauptsächlich das
(15 Dez '15, 21:28)
esdd
@racoon9: Als jemand, der noch weit davon entfernt ist, sich damit auszukennen: Am meisten
(21 Dez '15, 11:37)
saputello
Ergebnis 5 von 10
show 5 more comments
|