tikz:在直線上放置標記

tikz:在直線上放置標記

將標記放置在路徑上的指定點上討論了在複雜的路徑上放置標記,但是在簡單的直線上放置標記仍然很困難。

我嘗試:

\documentclass[border=1cm]{standalone}
\usepackage{tikz}
\usetikzlibrary{decorations.markings}
\begin{document}
\begin{tikzpicture}
  \coordinate (A) at (0, 0);
  \coordinate (B) at (1, 3);
  \draw (A) -- (B);
  \path [
    postaction={decorate},
    decoration={
      markings,
      mark = at position {0.1\dimexpr\pgfdecoratedpathlength\relax} with {fill = red circle (0.5cm)}
    }
  ] (A) -- (B) ;
\end{tikzpicture}
\end{document}

在輸出中

在此輸入影像描述

標記無處可見。

出了什麼問題以及如何修復?

答案1

無需以下操作即可獲得相同的結果decorations.markings

\documentclass[tikz, border=1cm]{standalone}

\begin{document}
\begin{tikzpicture}
  \coordinate (A) at (0, 0);
  \coordinate (B) at (1, 3);
\draw  (A) -- (B) node[pos=0.1, circle,fill=red,inner sep=1.5pt] {};
\end{tikzpicture}
\end{document}

在此輸入影像描述

答案2

不確定你從哪裡得到標記的語法,你需要

mark = at position 0.1 with {\fill [red] circle (0.5cm);}

正如薛丁格的貓在評論中提到的,你根本不需要任何東西\pgfdecorationpathlength,數字被解釋為沿路徑的分數距離。 (如果你確實想使用\pgfdirectionpathlength,就0.1*\pgfdecoratedpathlength足夠了,不需要\dimexpr。)並且實際標記需要是正確的路徑。

\documentclass[border=1cm]{standalone}
\usepackage{tikz}
\usetikzlibrary{decorations.markings}
\begin{document}
\begin{tikzpicture}
  \coordinate (A) at (0, 0);
  \coordinate (B) at (1, 3);
  \draw (A) -- (B);
  \path [
    postaction={decorate},
    decoration={
      markings,
      mark = at position 0.1 with {\fill [red] circle [radius=0.1cm];}
    }
  ] (A) -- (B) ;
\end{tikzpicture}
\end{document}

相關內容