我经常绘制一半实一半虚的矢量(矢量的另一部分是“不可见的”(参见下面的 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}