Ich zeichne oft Vektoren, die halb voll und halb gestrichelt sind (der andere Teil des Vektors ist „unsichtbar“ (siehe MWE unten). Normalerweise zeichne ich zwei Linien separat (ich kenne keine andere Methode).
\documentclass{standalone}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\draw[very thin] (0,-1) -- (0,1);
\draw[ultra thick] (-2,0) -- (0,0);
\draw[ultra thick,dashed,->] (0,0) -- (2,0);
\end{tikzpicture}
\end{document}
Das Problem ist, dass der zweite Teil immer mit einer Zeile beginnt und ich möchte, dass er mit einem Leerzeichen beginnt. Wie kann ich das machen? Ich habe versucht, mit einen neuen Stil zu definieren \tikzset{mydashed/.style={dash pattern=off 3pt on 3pt}}
, aber es funktioniert nicht.
Bitte sag mir was zu tun ist?
Antwort1
Sie können verwenden shorten <=<length>
, damit die Linie nach der angegebenen Länge gezeichnet wird:
\documentclass{standalone}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\draw[very thin] (0,-1) -- (0,1);
\draw[ultra thick] (-2,0) -- (0,0);
\draw[ultra thick,dashed,->,shorten <=3] (0,0) -- (2,0);
\end{tikzpicture}
\end{document}
Antwort2
Sie können das Strichmuster so verschieben, dass der erste on
Teil übersprungen wird. Die Definition der Strichmuster finden Sie in der tikz.code.tex
Datei. Zur schnellen Referenz:
\tikzstyle{dashed}= [dash pattern=on 3pt off 3pt]
\tikzstyle{densely dashed}= [dash pattern=on 3pt off 2pt]
\tikzstyle{loosely dashed}= [dash pattern=on 3pt off 6pt]
Zunächst müssen Sie das Strichmuster um 3pt oder -3pt oder ein Vielfaches davon verschieben. Dann können Sie Ihr eigenes erstellen mydashed
über
\documentclass[tikz]{standalone}
\begin{document}
\begin{tikzpicture}[mydashed/.style={dashed,dash phase=3pt}]
\draw[very thin] (0,-1) -- (0,1);
\draw[ultra thick] (-2,0) -- (0,0);
\draw[ultra thick,mydashed,->] (0,0) -- (2,0);
\draw[solid,mydashed,->] (0,-0.5) -- (2,-0.5);
\draw[ultra thin,mydashed,->] (0,-0.25) -- (2,-0.25);
\end{tikzpicture}
\end{document}
Um den kombinierten Vektor in einem Durchgang zu zeichnen, können Sie je nach Bedarf eine Dekoration verwenden. Wenn immer ein bekannter Teil des Vektors gestrichelt ist (in Prozent usw.), ist es relativ einfach. Andernfalls kann es etwas Arbeit erfordern.
Antwort3
Einige Optimierungen mit dash pattern
:
\documentclass{standalone}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\draw[very thin] (0,-1) -- (0,1);
\draw[ultra thick] (-2,0) -- (0,0);
\draw[ultra thick,dash pattern=on 0pt off 3pt on 3pt off -1pt,->] (0,0) -- (2,0);
\end{tikzpicture}
\end{document}
Antwort4
Genau dafür gibt es eine Taste, die dash phase
. Sie verschiebt einfach das Strichmuster um den angegebenen Wert. Das Beispiel aus dem Handbuch:
\begin{scope}[dash pattern=on 20pt off 10pt]
\draw[dash phase=0pt] (0pt,3pt) -- (3.5cm,3pt);
\draw[dash phase=10pt] (0pt,0pt) -- (3.5cm,0pt);
\end{scope}
Auf dieses MWE angewendet:
\documentclass[tikz]{standalone}
\begin{document}
\begin{tikzpicture}
\draw[very thin] (0,-1) -- (0,1);
\draw[ultra thick] (-2,0) -- (0,0);
\draw[ultra thick,dashed,->, dash phase=3pt] (0,0) -- (2,0);
\end{tikzpicture}
\end{document}