从网站上获得此代码,尝试了几个小时才采用它,我想要做的就是将平行四边形中间的箭头更改为大多数数学教科书中看到的普通箭头>>但可能稍大一些,我的 MWE 如下。
\documentclass{scrreprt}
\usepackage{tikz}
\usetikzlibrary{decorations.markings}
\tikzset{%
->-/.style={decoration={markings, mark=at position 1.5 with {\arrow{>}}},
postaction={decorate}},
->>-/.style={decoration={markings, mark=at position 1.0 with {\arrow{>>}}},
postaction={decorate}},
}
\begin{document}
\begin{tikzpicture}[meme/.pic={ \fill[red ] (150:6pt) to[bend right=10] (0:3pt) to[bend right=10] (-150:6pt)--cycle;
}]
\path
(0,0) coordinate (A)
(2,3) coordinate (B)
(8,3) coordinate (C)
(6,0) coordinate (D);
\node [left] at (0,0) {D};
\node [left] at (2,3) {A};
\node [right] at (8,3) {B};
\node [right] at (6,0) {C};
\draw [thick] (2,3) -- (6,0);
\draw[sloped] (A)
--(B) pic[pos=.5]{meme}
--(C) pic[pos=.46]{meme} pic[pos=.54]{meme}
--(D) pic[pos=.5]{meme}
--cycle pic[pos=.46]{meme} pic[pos=.54]{meme};
\end{tikzpicture}
\end{document}
答案1
我从中汲取灵感快速谷歌搜索。
我arrow
更喜欢使用图片而不是使用decorations.markings
库。其代码的第一行移动绘图,以便整个构造的中间是我们想要的位置(否则尖端将不对称)。
这些图片通过样式放置,edge node
这样我们就不必写出每张图片的规范。
该示例显示了将这种箭头加倍的两种方法:
- 使用只需在第一个箭头后面添加第二个箭头的样式
>>
。->>-
- 使用双箭头提示的规范(因为我想要
->-
这些条之间的连接)。>
sep
代码
\documentclass[tikz]{standalone}
\usetikzlibrary{arrows.meta, quotes}
\tikzset{
reversed/.style={xscale=-1},
pics/arrow/.style={/tikz/sloped, /tikz/allow upside down, code=%
\pgfarrowtotallength{#1}\tikzset{xshift/.expanded=.5*\csname pgf@x\endcsname}%
\pgfarrowdraw{#1}}, pics/arrow/.default=>}
\begin{document}
\tikz[
line join=round,
Arr/.tip={Straight Barb[angle'=60, scale=2]},
||/.tip={Bar[sep] . Bar},
> = Arr,
->-/.style={edge node={pic[#1]{arrow}}},
->>-/.style={edge node={pic[#1]{arrow=>>}}},
] \draw[thick, draw=purple]
(0, 0) coordinate["$D$" left] (D)
to[->>-] (2, 3) coordinate["$A$" left] (A)
to[->-] (8, 3) coordinate["$B$" right] (B)
to[->>-=reversed] (6, 0) coordinate["$C$" right] (C)
to[->- =reversed] cycle
coordinate["$E$"] (E) at (intersection of D--B and A--C)
[behind path, every edge/.append style={black, thin}, arrows={[slant=.2]}]
(A) edge[>=||, ->-=near start, ->-=near end] (C)
(B) edge[>=|, ->-=near start, ->-=near end] (D);
\end{document}
输出
答案2
更新:风格meme
来自这个答案是为了以简单的方式创建用户灵活的箭头而制作的。
适应你的问题,只需稍微改变一下meme
(你可以把它放在\tikzset
)
meme/.pic={
\draw (150:8pt) --(0,0)-- (-150:8pt);
}
\documentclass{scrreprt}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}[meme/.pic={
\draw (150:8pt) --(0,0)-- (-150:8pt);
}]
\path
(0,0) coordinate (D) node[below left]{$D$}
(2,3) coordinate (A) node[above left]{$A$}
(6,0) coordinate (C) node[below right]{$C$}
(A)+(C) coordinate (B) node[above right]{$B$};
\draw[gray] (A)--(C) (B)--(D);
\draw[thick]
(A)--(B) pic[pos=.5,sloped,red]{meme}
(D)--(C) pic[pos=.5,sloped,red]{meme}
(D)--(A) pic[pos=.47,sloped,blue]{meme}
pic[pos=.53,sloped,blue]{meme}
(C)--(B) pic[pos=.47,sloped,blue]{meme}
pic[pos=.53,sloped,blue]{meme}
;
\end{tikzpicture}
\end{document}
是不是觉得这个简单又灵活呢?
老的:请注意,acoordinate
是node
没有内容的 a。也许你想要的是Straight Barb
来自arrows.meta
图书馆的箭头(请参阅PGF手册)。
其中,和Straight Barb[angle=30:8pt]
的含义分别为尖端角度和尖端长度。30
8pt
\documentclass{scrreprt}
\usepackage{tikz}
\usetikzlibrary{arrows.meta}
\begin{document}
\begin{tikzpicture}[>={Straight Barb[angle=30:8pt]}]
\path
(0,0) coordinate (D) node[below left]{$D$}
(2,3) coordinate (A) node[above left]{$A$}
(6,0) coordinate (C) node[below right]{$C$}
(A)+(C) coordinate (B) node[above right]{$B$};
\draw[blue] (2,3) -- (6,0);
\draw[->] (A)--(B);
\draw[->] (D)--(C);
\draw[->] (D)--(A);
\draw[->] (C)--(B);
\end{tikzpicture}
\end{document}