我需要用曲线中心的曲线中心装饰一条曲线。在tikz
中,可以通过将pre length
的值设置为等于箭头的长度来实现,如下例所示
\draw[decoration={ pre length=8pt, markings, mark=at position 0.5 with {\arrow{Stealth[black,length=8pt]}}}, postaction={decorate}] (-0.5, 0.125) to [out=60, in=120] (0.5, 0.125);
是否可以使箭头方向与装饰点(此处为pos=0.5
)的切线相同,同时保持箭头中心位于相同位置,使图像看起来对称?以下图片是我需要的。
答案 0 :(得分:2)
受Jake's answer of getting the local coordinate system of an arbitrary point of a curve through markings的启发,我将其调整出来。
\newcommand{\appendarrow}[3]{
\tikzset{
middlearrow/.style args={#1}{
decoration={
markings,
mark= at position 0.5 with
{
\coordinate (exy1) at (#1/-6.0,0pt);
\coordinate (exy2) at (-0.5*#1,#1/3.0); % 3.0 adjustable
\coordinate (exy3) at (0.5*#1,0pt);
\coordinate (exy4) at (-0.5*#1,#1/-3.0); % 3.0 adjustable
},
},
postaction=decorate
},
middlearrow/.default= 3pt
}
\draw[middlearrow=#1] #3;
\fill[#2] (exy1) -- (exy2) -- (exy3) -- (exy4) -- cycle;
}
如果我们想要绘制带有中间箭头的路径,请使用\appendarrow{arrow size}{arrow color}{path}
。例如,\appendarrow{6pt}{black}{(-0.5, 0.125) to [out=60, in=120] (0.5, 0.125);}
给出了下图
答案 1 :(得分:1)
这个怎么样?
\draw[thick, ->] (-0.5, 0.125) to [out=90, in=180] (0, 0.5);
\draw[thick] (0, 0.5) to [out=0, in=90] (0.5, 0.125);
对我来说,将曲线分成两部分并在第一条曲线的末端放一个常规箭头是最好的主意。