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. 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. 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: 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 |
Du könntest die 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} beantwortet 26 Jun '14, 12:39 esdd Perfekt, so hatte ich mir das vorgestellt. Vielen Dank!
(26 Jun '14, 12:53)
brockerdocker
|
@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.
Gibt es einen Grund, dass die Frage als Community-Wiki markiert ist?
@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.
@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 aufOpen in writeLaTeX
online laufen lassen.@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.