Tikz - Abschnittsweise Linieneigenschaften & Zeichenmeth

Antwort erstellen


Diese Frage dient dazu, das automatisierte Versenden von Formularen durch Spam-Bots zu verhindern.
Smilies
:D :) :( :o :shock: :? 8) :lol: :-x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen:

BBCode ist eingeschaltet
[img] ist eingeschaltet
[flash] ist ausgeschaltet
[url] ist eingeschaltet
Smilies sind eingeschaltet

Die letzten Beiträge des Themas

Ich habe die Datenschutzerklärung gelesen und bin damit einverstanden.

   

Wenn du eine Datei oder mehrere Dateien anhängen möchtest, gib die Details unten ein.

Ansicht erweitern Die letzten Beiträge des Themas: Tikz - Abschnittsweise Linieneigenschaften & Zeichenmeth

von die_nase » So 4. Okt 2015, 14:17

Super, vielen Dank!

von esdd » Sa 3. Okt 2015, 15:27

die_nase hat geschrieben:Meine Idee war, dass ich zwei Punkte (beispielsweise (0,0) und (3,2)) mit einer Linie (thick) verbinde und die Linie nach dem vorgegebenen Punkt (3,2) die Eigenschaft dotted und thick hat. Die Länge nach dem Punkt möchte ich dann vorgeben.
Das geht zum Beispiel so
\documentclass[margin=10pt]{standalone} 
\usepackage{tikz} 
\usetikzlibrary{calc} 

\begin{document} 
\begin{tikzpicture}[ 
   punkt/.style={fill=black,radius=1.5pt}, 
]
% Koordinaten festlegen
\path 
   (0,0)coordinate(h1) 
   (3,2)coordinate(h2) 
 ;
% Verbindunglinien
\draw(h1)--(h2);
\draw[dotted,thick](h2)--($(h2)!-1cm!(h1)$);
% Punkte markieren
\foreach \n in {h1,h2}\path[punkt](\n)circle; 
\end{tikzpicture} 
\end{document}
die_nase hat geschrieben: Gibt es dafür eine einfachere Lösung?
Mit TikZ gibt es immer viele verschiedene Lösungen, siehe zum Beispiel Teilweise gestrichelte Kurve. Was davon einfacher oder effizienter ist, hängt von der Zeichnung als Ganzes ab.

Was jedenfalls nicht geht, ist das Du innerhalb eines Pfades Eigenschaften wie Farbe, Dicke, Art der Linie änderst, siehe dazu in "14 Syntax for Path Specifications" der Dokumentation (Link siehe meinen vorhergehenden Beitrag):
Some options only apply to the path as a whole. For example, the color= option for determining
the color used for, say, drawing the path always applies to all parts of the path. If several different
colors are given for different parts of the path, only the last one (on the outermost scope) “wins”:...

Most options are of this type.
Gruß
Elke

PS: Bitte informiere Dich, was der Status "Rückfrage" bedeutet.

von die_nase » Fr 2. Okt 2015, 21:27

Hallo Elke,

super, vielen Dank für deine tolle Lösung. - "Verbindungspunkte" sind natürlich quatsch! (damit meine ich die Verbindungslinien)

Meine Idee war, dass ich zwei Punkte (beispielsweise (0,0) und (3,2)) mit einer Linie (thick) verbinde und die Linie nach dem vorgegebenen Punkt (3,2) die Eigenschaft dotted und thick hat. Die Länge nach dem Punkt möchte ich dann vorgeben. Gibt es dafür eine einfachere Lösung?

P.S.: Elke, deine Lösung funktioniert super! Es geht vielleicht ein bisschen um die Effizienz.

Re: Tikz - Abschnittsweise Linieneigenschaften & Zeichen

von esdd » Mi 30. Sep 2015, 15:13

die_nase hat geschrieben:
1. Ist es möglich eine Linie von einem Punkt beginnend und mit einer bestimmten Länge durch einen anderen Punkt zu zeichnen? - Ähnlich wie bei der Winkelangabe einer Linie (zB. 75:3, wobei 3 die Linienlänge und 75 der Winkel ist)? (im MB unter dem "Linienlänge"-Kommentar)
Lade die calc Bibliothek und verwende dann die in der pgf/TikZ-Dokumentation in den Unterabschnitten "The Syntax of Partway Modifiers" und "The Syntax of Distance Modifiers" beschriebene Syntax.

die_nase hat geschrieben: 2. Wie lassen sich die Verbindungspunkte zwischen zwei Linien mit unterschiedlichen Eigenschaften gestalten? - Bzw. wie lässt sich dies überhaupt bewerkstelligen?
Gegenfrage: Was sind Verbindungspunkte zwischen zwei Linien??

die_nase hat geschrieben: Möchte ich die Punkte (wie im MB unter "Linieneigenschaften" verbinden, dann sind die Übergänge nahtlos. Kann man Optionen für die einzelnen Abschnitte abgeben, so dass beispielsweise die Strecke (0,0) -- (-1,0) grün ist, die Strecke (-1,0) -- (1,1) gestrichelt und grün, etc.? - Und das ohne für jede Strecke einzeln angeben zu müssen (und dafür immer einen separaten \draw-Befehl zu schreiben?)
Innerhalb eines \draw Befehles kannst Du die Eigenschaften der Linie nicht ändern. Je nachdem, was man eigentlich tun möchte, kann man sich eventuell mit einer Schleife behelfen.
\documentclass[margin=10pt]{standalone} 
\usepackage{tikz} 
\usetikzlibrary{calc}

\begin{document} 
\begin{tikzpicture}[
  punkt/.style={fill=black,radius=1.5pt},
  linie/.style={#1}
]
\path
  (2,3)coordinate(h1)
  (5,3)coordinate(h2)
;
\draw[red](h1)--($(h1)!4cm!(h2)$);
\foreach \n in {h1,h2}\path[punkt](\n)circle;
\path[yshift=-1cm]
  (2,3)coordinate(h1)
  (5,3)coordinate(h2)
;
\draw[green](h1)--($(h1)!2!(h2)$);
\foreach \n in {h1,h2}\path[punkt](\n)circle;

\foreach[remember=\p as \lastp (initially {0,0})] \p/\c in {%
  {-1,0}/red,%
  {1,1}/{green,dashed},%
  {4,0}/{blue,dotted}%
}\draw[linie/.expanded=\c](\lastp)--(\p);
\end{tikzpicture} 
\end{document}
Gruß
Elke

Tikz - Abschnittsweise Linieneigenschaften & Zeichenmeth

von die_nase » Mi 30. Sep 2015, 13:04

Hallo zusammen,
ich habe zwei Fragen, die sich beide auf Tikz beziehen.

1. Ist es möglich eine Linie von einem Punkt beginnend und mit einer bestimmten Länge durch einen anderen Punkt zu zeichnen? - Ähnlich wie bei der Winkelangabe einer Linie (zB. 75:3, wobei 3 die Linienlänge und 75 der Winkel ist)? (im MB unter dem "Linienlänge"-Kommentar)



2. Wie lassen sich die Verbindungspunkte zwischen zwei Linien mit unterschiedlichen Eigenschaften gestalten? - Bzw. wie lässt sich dies überhaupt bewerkstelligen?

Möchte ich die Punkte (wie im MB unter "Linieneigenschaften" verbinden, dann sind die Übergänge nahtlos. Kann man Optionen für die einzelnen Abschnitte abgeben, so dass beispielsweise die Strecke (0,0) -- (-1,0) grün ist, die Strecke (-1,0) -- (1,1) gestrichelt und grün, etc.? - Und das ohne für jede Strecke einzeln angeben zu müssen (und dafür immer einen separaten \draw-Befehl zu schreiben?)

Viele Grüße

\documentclass{article}
\usepackage[latin1]{inputenc}
\usepackage{tikz}
\pgfplotsset{width=\textwidth, compat=newest}

\begin{document}

\begin{tikzpicture}
% Linienlänge
	\draw[red, thick] (2,3) -- (5,3);
	\fill[black] (2,3)circle(1.5pt);
	\fill[black] (5,3)circle(1.5pt);

	\draw[red, thick] (2,2) -- (7,2);
	\fill[black] (2,2)circle(1.5pt);
	\fill[black] (5,2)circle(1.5pt);
% Linieneigenschaften	
	\draw[blue, thick] (0,0) -- (-1,0) -- (1,1) -- (4,0);
\end{tikzpicture}

\end{document}

Nach oben