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

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

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) {};

Insgesamt ergibt sich damit für meinen aktuellen Stand:

Open in writeLaTeX
\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}

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

beantwortet 26 Jun '14, 12:39

esdd's gravatar image

esdd
17.8k284257
Akzeptiert-Rate: 62%

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

(26 Jun '14, 12:53) brockerdocker
Deine Antwort
Vorschau umschalten

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

Markdown-Grundlagen

  • *kursiv* oder _kursiv_
  • **Fett** oder __Fett__
  • Link:[Text](http://url.com/ "Titel")
  • Bild?![alt Text](/path/img.jpg "Titel")
  • nummerierte Liste: 1. Foo 2. Bar
  • zum Hinzufügen ein Zeilenumbruchs fügen Sie einfach zwei Leerzeichen an die Stelle an der die neue Linie sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Frage-Themen:

×730
×6
×1

gestellte Frage: 26 Jun '14, 11:09

Frage wurde gesehen: 8,156 Mal

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