我經常繪製向量,半實半虛(向量的另一部分是「不可見的」(參見下面的MWE)。通常我分別繪製兩條線(我不知道任何其他方法)。
\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}
問題是第二部分總是以線條開頭,而我希望它以空格開頭。我怎樣才能做到這一點?我嘗試用 定義新樣式\tikzset{mydashed/.style={dash pattern=off 3pt on 3pt}}
,但它不起作用。
請告訴我該怎麼做?
答案1
您可以使用shorten <=<length>
這樣的方式在指定長度之後開始繪製線條:
\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}
答案2
您可以移動破折號圖案,使其跳過第一on
部分。對於破折號模式的定義,您可以搜尋該tikz.code.tex
檔案。供快速參考;
\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]
因此,首先您需要將破折號圖案移動 3pt 或 -3pt 或它們的倍數。然後你可以mydashed
透過創建你自己的
\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}
要一次繪製組合向量,根據需要,可以使用裝飾。如果向量的已知部分始終是虛線(以百分比等形式),則相對容易。否則可能需要一些工作。
答案3
一些週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}
答案4
有一個密鑰正是用於此目的,即dash phase
.它只是用給定的值來改變破折號圖案。手冊中的範例:
\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}
應用於此 MWE:
\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}