tikz: coloque uma marca em uma linha reta

tikz: coloque uma marca em uma linha reta

coloque uma marca em um ponto especificado ao longo do caminhodiscute a colocação de uma marca em um caminho complicado, mas mesmo assim é difícil colocar uma marca em uma linha reta simples.

Eu tento:

\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}

Na saída

insira a descrição da imagem aqui

a marca não está em lugar nenhum.

O que há de errado e como consertar?

Responder1

O mesmo resultado você pode obter sem 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}

insira a descrição da imagem aqui

Responder2

Não tenho certeza de onde você tirou essa sintaxe para a marca, você precisa

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

Como o gato de Schrödinger mencionou em um comentário, você não precisa de nenhum \pgfdecorationpathlength, um número é interpretado como uma distância fracionária ao longo do caminho. (Se você quiser usar \pgfdirectionpathlength, basta 0.1*\pgfdecoratedpathlength, não é \dimexprnecessário.) E a marca real precisa ser um caminho adequado.

\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}

informação relacionada