使用以下程式碼,如何向每個標記插入標籤(或節點或座標)!
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{calc, decorations.markings}
\begin{document}
\begin{tikzpicture}
\def\gap{0.2}
\def\bigradius{3}
\def\littleradius{0.5}
%
\draw[cyan](0,0)coordinate(h) (-1*\bigradius,0) -- (1*\bigradius,0) (0,-1*\bigradius) -- (0,1*\bigradius);
%
\draw[color=blue, line width=2pt, decoration={markings,
mark=at position 0.2455 with {\arrow[color=red]{stealth}},
mark=at position 0.765 with {\arrow[color=green]{stealth}},
mark=at position 0.87 with {\arrow[color=brown]{stealth}},
mark=at position 0.97 with {\arrow[color=orange]{stealth}}},
postaction={decorate}, preaction={fill=yellow!60, fill opacity=.4}]
let
\n1={asin(\gap/2/\bigradius)},
\n2={asin(\gap/2/\littleradius)}
in (\n1:\bigradius) arc (\n1:360-\n1:\bigradius) -- (-\n2:\littleradius) arc (-\n2:-360+\n2:\littleradius) -- cycle;
%
\node[red] at (h) {H};
\end{tikzpicture}
\end{document}
答案1
您可以在繪製箭頭時簡單地新增節點。請注意,這裡的座標(-.3,.3)
是相對於標記座標的局部座標。
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{calc, decorations.markings}
\begin{document}
\begin{tikzpicture}
\def\gap{0.2}
\def\bigradius{3}
\def\littleradius{0.5}
%
\draw[cyan](0,0)coordinate(h) (-1*\bigradius,0) -- (1*\bigradius,0) (0,-1*\bigradius) -- (0,1*\bigradius);
%
\draw[color=blue, line width=2pt, decoration={markings,
mark=at position 0.2455 with {\arrow[color=red]{stealth} \node[color=red] at (-.3,.3) {$a$};},
mark=at position 0.765 with {\arrow[color=green]{stealth} \node[color=green] at (-.3,.3) {$b$};},
mark=at position 0.87 with {\arrow[color=brown]{stealth} \node[color=brown] at (-.3,.3) {$c$};},
mark=at position 0.97 with {\arrow[color=orange]{stealth} \node[color=orange] at (-.3,.3) {$d$};},
},
postaction={decorate}, preaction={fill=yellow!60, fill opacity=.4}]
let
\n1={asin(\gap/2/\bigradius)},
\n2={asin(\gap/2/\littleradius)}
in (\n1:\bigradius) arc (\n1:360-\n1:\bigradius) -- (-\n2:\littleradius) arc (-\n2:-360+\n2:\littleradius) -- cycle;
%
\node[red] at (h) {H};
\end{tikzpicture}
\end{document}
答案2
您只需將節點新增至標記即可。這段程式碼使用了來自的彎曲箭頭https://tex.stackexchange.com/a/676562/292811,這可能看起來更漂亮。
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{arrows.meta,bending,calc, decorations.markings,hobby}
\begin{document}
\begin{tikzpicture}[>={Stealth[length=0.3cm,bend]},
% stolen from https://tex.stackexchange.com/a/676562/292811
colored bent arrow at/.style args={#1/#2/#3}{decoration={markings,
mark=at position {#1*\pgfdecoratedpathlength-0.15cm} with {\coordinate (bent arrow 1);},
mark=at position {#1*\pgfdecoratedpathlength-0.05cm} with {\coordinate (bent arrow 2);},
mark=at position {#1*\pgfdecoratedpathlength} with {#3},
mark=at position {#1*\pgfdecoratedpathlength+0.05cm} with {\coordinate (bent arrow 3);},
mark=at position {#1*\pgfdecoratedpathlength+0.15cm} with {\coordinate (bent arrow 4);
\draw[style/.expand once=#2,-{Stealth[length=0.3cm,bend]}] (bent arrow 1) to[curve through={(bent arrow 2) .. (bent arrow 3)}] (bent arrow 4) ;}
}}]
\def\gap{0.2}
\def\bigradius{3}
\def\littleradius{0.5}
%
\draw[cyan](0,0)coordinate(h) (-1*\bigradius,0) -- (1*\bigradius,0) (0,-1*\bigradius) -- (0,1*\bigradius);
%
\draw[color=blue, line width=2pt,
colored bent arrow at/.list={0.2455/red/{\node[above left,red]{$a$};},
0.765/green/{\node[below,green]{$b$};},
0.87/brown/{\node[above,brown]{$c$};},
0.97/orange/{\node[above,orange]{$a$};}},
%decoration={markings,
% mark=at position 0.2455 with {\arrow[color=red]{stealth}},
% mark=at position 0.765 with {\arrow[color=green]{stealth}},
% mark=at position 0.87 with {\arrow[color=brown]{stealth}},
% mark=at position 0.97 with {\arrow[color=orange]{stealth}}},
postaction={decorate}, preaction={fill=yellow!60, fill opacity=.4}]
let
\n1={asin(\gap/2/\bigradius)},
\n2={asin(\gap/2/\littleradius)}
in (\n1:\bigradius) arc (\n1:360-\n1:\bigradius) -- (-\n2:\littleradius) arc (-\n2:-360+\n2:\littleradius) -- cycle;
%
\node[red] at (h) {H};
\end{tikzpicture}
\end{document}