Hallo,

ich bin relativ neu am Arbeiten mit Tikz. Momentan scheitere ich daran über den Rand eines beliebig geformten Körpers in konstantem Abstand kleine Kreise oder auch andere Symbole zu verteilen. Dahinter steckt, dass ich eine Quellverteilung über eine Oberfläche darstellen will.

Meine erste Idee war anstatt einer punktierten Linie, die Linie aus größeren Kreisen bestehen zu lassen. Leider finde ich außer "dashed" und "dotted" keine Optionen um andere Formen zuzulassen.

Am erfolgsversprechendsten kam ich bisher mit folgender Methode:

Open in writeLaTeX
Code, hier editierbar zum Übersetzen:
\draw[] (2.5,-2) .. controls(0.86,-1.76) and (1.43,1.32) .. (3,1)
foreach \t in {0, 0.067, ..., 1} {
pic [pos=\t] {code={\draw circle [radius=2pt];}}
};
\draw[] (2.5,-2) .. controls(5.5,-2.5) and (6,0.5) .. (3,1)
foreach \t in {0, 0.04, ..., 1} {
pic [pos=\t] {code={\draw circle [radius=2pt];}}
};
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Leider sind dabei die Kreise nicht im gleichen Abstand verteilt.

alt text

Auch möchte ich zwischen den Kreisen gerne immer einen Trennstrich wie | haben. Das habe ich wie folgt probiert

Open in writeLaTeX
Code, hier editierbar zum Übersetzen:
\draw[] (2.5,-2) .. controls(0.86,-1.76) and (1.43,1.32) .. (3,1)
foreach \t in {0, 0.067, ..., 1} {
pic [pos=\t] {code={\node {|};}}
};
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Allerdings wird dabei der Strich | nicht mitgedreht. Ich möchte, dass er immer normal zur Oberfläche steht.

alt text

Mein bisheriger Körper, auf dessen Rand die Kreise und Striche positioniert werden sollen sieht so aus:

Open in writeLaTeX
\filldraw[thick, rounded corners=16mm,fill=gray!3,fill opacity=0.5, dash pattern=on 20pt off 5pt] (1.15,-1.8) coordinate (v1) {} -- (-0.77,-2.97) --(-2.89,0.27) -- (0.2082,2.5846) --(3.35,0.35)--(v1) {};
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Insgesamt ergibt sich damit für meinen aktuellen Stand:

Open in writeLaTeX
Code, hier editierbar zum Übersetzen:
\begin{tikzpicture}
\fill[thick, fill=gray!30] (2.5,-2) .. controls(0.86,-1.76) and (1.43,1.32) .. (3,1)
foreach \t in {0, 0.067, ..., 1} {
pic [pos=\t] {code={\draw circle [radius=2pt];}}
};
\fill[thick, fill=gray!30] (2.5,-2) .. controls(5.5,-2.5) and (6,0.5) .. (3,1)
foreach \t in {0, 0.04, ..., 1} {
pic [pos=\t] {code={\draw circle [radius=2pt];}}
};
\end{tikzpicture}
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Dies sieht dann so aus:

alt text

Hier stört mich die weiße Linie in der Mitte und die unregelmäßige Anordnung der Kreise. Außerdem fehlen die Trennstriche in Normalenrichtung zur Oberfläche. Es wäre super, wenn mir jemand einen Tipp geben könnte. Viele Grüße!

Dieser Frage ist "Community Wiki" markiert.

gefragt 26 Jun '14, 11:09

brockerdocker's gravatar image

brockerdocker
313
Akzeptiert-Rate: 0%

bearbeitet 26 Jun '14, 11:58

1

@brockerdocker Willkommen auf der TeXwelt! Falls Du evtl. ein kleines übersetzbares Beispiel draus machen würdest und in die Frage hinein editieren würdest, könnten wir einfacher und schneller testen und helfen. Übrigens sind komplette TikZ-Grafiken interessant und es ist spannender, an einer richtigen Grafik zu arbeiten als an Testcode. ;-) Ich wäre neugierig drauf.

(26 Jun '14, 11:30) stefan ♦♦

Gibt es einen Grund, dass die Frage als Community-Wiki markiert ist?

(26 Jun '14, 11:33) cgnieder

@Stefan: Erstmal vielen Dank! Ich hab jetzt ein komplettes Beispiel angehängt, aber wie zu sehen, bin ich erst am Anfang und es gibt nicht viel mehr, als bisher gezeigt. @Clemens: Ich hab keine Ahnung, woher diese Markierung kommt. Zumindest habe ich sie nicht beabsichtigt. Falls ich mich irgendwo verklickt haben sollte, bitte ich das zu entschuldigen.

(26 Jun '14, 12:01) brockerdocker
1

@brockerdocker Ein Beispiel ist erst dann komplett, wenn es auch eine Dokumentenklasse und die notwendigen Pakete sowie \begin{document} und \end{document} enthält. Dann können es andere entweder direkt kopieren oder durch einen Klick auf Open in writeLaTeX online laufen lassen.

(26 Jun '14, 12:45) esdd

@brockerdocker Community Wiki hat für Dich den Nachteil, dass Du keine Punkte bekommst, wenn jemand für die Frage stimmt. Wenn Du die Frage bearbeitest, findest Du rechts unter dem Texteingabefeld ein Feld, wo Du das wieder rückgängig machen kannst.

(26 Jun '14, 12:56) cgnieder

Du könntest die decorations.markings Bibliothek nutzen. Dann kann man die Markierungen in gleichem Abstand setzen. Gleichzeitig werden diese am dekorierten Pfad ausgerichtet. Und es ist damit möglich den Pfad als geschlossene Kurve zu zeichnen. Allerdings muss man einen sinnvollen Abstand zwischen den Markierungen durch Probieren ermitteln, damit der Anschluss an der Stelle stimmt, an der der Pfad geschlossen wird.

alt text

Code:

Open in writeLaTeX
Code, hier editierbar zum Übersetzen:
\documentclass[tikz]{standalone}
\usetikzlibrary{decorations.markings}
\newcommand\abstand{}
\begin{document}
\begin{tikzpicture}
\def\abstand{9pt}
\path[
fill=gray!30,
postaction=decorate,
decoration={
markings,
mark=
between positions 0 and .99 step \abstand with
{
\draw circle [radius=2pt];
\draw(.5*\abstand,-2pt)--(.5*\abstand,2pt);
}
},
]
(3,1) .. controls(1.43,1.32) and (0.86,-1.76) .. (2.5,-2)
.. controls(5.5,-2.5) and (6,0.5) .. cycle;
\end{tikzpicture}
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Permanenter link

beantwortet 26 Jun '14, 12:39

esdd's gravatar image

esdd
17.8k294257
Akzeptiert-Rate: 62%

Perfekt, so hatte ich mir das vorgestellt. Vielen Dank!

(26 Jun '14, 12:53) brockerdocker
Deine Antwort
[Vorschau ausblenden]

Folgen dieser Frage

Per E-Mail:

Wenn sie sich anmelden, kommen Sie für alle Updates hier in Frage

Per RSS:

Antworten

Antworten und Kommentare

Frage-Themen:

×731
×6
×1

gestellte Frage: 26 Jun '14, 11:09

Frage wurde gesehen: 8,304 Mal

zuletzt geändert: 26 Jun '14, 12:56

Willkommen, erstes Mal hier? Schau mal unter FAQ!

×