TikZ 我可以通过指定起点、方向和长度来绘制箭头吗?

TikZ 我可以通过指定起点、方向和长度来绘制箭头吗?

我想画一些类似的东西:

我可以画出三角形,但我不知道如何轻松画出箭头。这是我的尝试:

\documentclass[12pt]{book}
\usepackage{tikz}
\usetikzlibrary{arrows}
\usepackage{amsmath}

\begin{document}

\begin{tikzpicture}
\draw (-6, -3) -- (6, -3)  -- (-2, 3) -- cycle; % Left - Right - Top
\draw (-4,0) -- (2, 0); % Horizontal Bisector
\draw (0, -3) -- (-4,0); % Left Bisector
\draw(0,-3) -- (2,0); % Right Bisector
\draw [->] (0.5, 0.825) -- (-0.5, 1.575); % slope -3/4
\end{tikzpicture}

\end{document}

看起来像这样:

计算每个箭头的长度、方向和位置会花掉我几个小时。有没有办法通过给出初始点、长度和方向来指定箭头?如果没有,有没有其他方法来绘制此图?我是 TikZ(以及 LaTeX)的初学者,所以我不一定非要寻找绝对最短的解决方案,而更需要寻找我能理解的解决方案。谢谢。

答案1

这是一个修改的版本to path。因此,您需要用 替换--to然后应用样式,例如

\draw[pft] (-6, -3) to (0, -3) to (-4,0) to cycle;

to path经过修改,在路径中间附加了一个倾斜的箭头(来自库shapes.arrows)。allow upside down用于避免 TiZ 以适合文本的方式智能地旋转箭头。我还将使用符号坐标,并且可以使用 将节点放置在三角形的中心barycentric cs:

\documentclass[tikz,border=3.14mm]{standalone}
\usetikzlibrary{shapes.arrows}
\begin{document}

\begin{tikzpicture}[pft/.style={to path={--(\tikztotarget)
    node[midway,above=0.6em,marrow,allow upside down]{}}},
    marrow/.style={sloped,fill, minimum height=3cm, single arrow, single arrow
    head extend=.5cm, single arrow head indent=.25cm,xscale=0.3,yscale=0.15}]
 \path (-6, -3) coordinate (A)  (6, -3) coordinate (B) (-2, 3) coordinate (C)
  (A) -- (B) coordinate[midway] (AB) (B) -- (C) coordinate[midway] (BC)         
  (C) -- (A) coordinate[midway] (CA);   
 \draw[pft] (A) to (AB) to (CA) to cycle
    (AB) to (B) to (BC) to cycle
    (CA) to (BC) to (C) to cycle
    (CA) to (AB) to (BC) to cycle;
 \path (barycentric cs:A=1,AB=1,CA=1) node{$T_1^{(1)}$}
  (barycentric cs:AB=1,BC=1,CA=1) node{$T_2^{(1)}$}
  (barycentric cs:CA=1,BC=1,C=1) node{$T_3^{(1)}$}
 (barycentric cs:B=1,AB=1,BC=1) node{$T_4^{(1)}$};
\end{tikzpicture}
\end{document}

在此处输入图片描述

答案2

您可以使用show path constructionmarkings装饰在每个路径段旁边放置一个箭头。限制在于您必须重复路径中的最后一个点(-- cycle单独使用是不行的),并且必须注意绘制路径的方向。

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{decorations.markings,decorations.pathreplacing}

\begin{document}

\begin{tikzpicture}[
        parallel arrows/.style={
            postaction=decorate,
            decoration={
                show path construction,
                lineto code={
                    \path[
                        postaction=decorate,
                        decoration={
                            markings,
                            mark=at position .5 with {
                                \draw[red,-stealth] (-.5,.1) -- (.5,.1);
                            }
                        }
                    ] (\tikzinputsegmentfirst) -- (\tikzinputsegmentlast);
                }
            }
        }
    ]
    \draw[parallel arrows] (-6,-3) -- (0,-3) -- (-4,0) -- (-6,-3) -- cycle;
    \draw[parallel arrows] (0,-3) -- (6,-3) -- (2,0) -- (0,-3) -- cycle;
    \path[parallel arrows] (-4,0) -- (0,-3) -- (2,0) -- (-4,0) -- cycle;
    \draw[parallel arrows] (-4,0) -- (2,0) -- (-2,3) -- (-4,0) -- cycle;
\end{tikzpicture}

\end{document}

在此处输入图片描述

相关内容