
Первоначальный код:
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{decorations}
\usetikzlibrary{decorations.markings}
\begin{document}
\pgfkeys{
/pgf/decoration/.cd,
pre fraction/.style={pre length=#1*\pgfmetadecoratedpathlength},
post fraction/.style={post length=#1*\pgfmetadecoratedpathlength}
}
\begin{tikzpicture}
\coordinate (A) at (0,0);
\coordinate (B) at (4,2);
\draw [
decoration={
curveto,
pre=moveto, pre fraction=0,
post=moveto, post fraction=0.3}, decorate, red, ultra thick] (A) to[out=0,in=-90](B);
\draw [decoration={curveto,
pre=moveto, pre fraction=0.7,
post=moveto, post fraction=0},%
decorate, blue, ultra thick,dotted] (A) to [out=0,in=-90](B);
\path [
decoration={
markings, mark=at position .7 with {\arrow[red,line width=2pt]{>}}},
decorate ] (A) to[out=0,in=-90](B);
\end{tikzpicture}
\end{document}
Возникает проблема, если я хочу заменить to
на edge
. В некоторых случаях замена полезна.
Можно ли использовать изготовление с кромкой? и как?
Я думаю, что проблема в том, что edge
операция работает как to
операция, которая добавляется после того, как был нарисован основной контур. Я часто получаю ошибку, что marking
не работает на пустом контуре!
решение1
Наконец я нашел ответ здесь:texblog.netв статье:Украсьте дорожку TikZ. (Автор: Стефан Коттвиц, спасибо!). Не знаю, почему я не подумал раньше. Есть много вопросов, связанных с использованием, edge
которые можно решить так, например:Странная стрелочная метка с кромкой TikZ и якорями.
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{decorations}
\usetikzlibrary{decorations.markings}
\begin{document}
\begin{tikzpicture}
\tikzset{every loop/.style={min distance=20mm,in=0,out=60,looseness=10}}
\draw (0,0) node[circle,draw]{A} edge[red,loop] ();
\path[decoration={
markings, mark=at position .7 with {\arrow[blue,line width=1pt]{>}}}] (0,0) node[circle]{A} edge[decorate,loop] ();
\end{tikzpicture}
\end{document}