如何在 TikZ 中指定箭头长度?

如何在 TikZ 中指定箭头长度?

我在 Tikz 中遇到了一个小问题。我尝试在 4 个维度内绘制箭头。每个箭头的长度应相等。我现在的实现使用坐标。有一个矩形,其中心点和每个方向的边缘点。我想从中心向每个方向绘制一个大小相同的箭头。现在我在中心和此构造之间绘制: ($(center)!0.5!(borderpoint)$)。这样做的问题是,短边和宽边之间的长度不同,但我希望每个方向的长度都相同。

例子:

\draw[thick] (0,0) -- (6,0) -- (6,3) -- (0, 3) -- cycle;
\draw[->, thick] (3,1.5) -- ($(3,1.5)!0.5!(0,1.5)$);
\draw[->, thick] (3,1.5) -- ($(3,1.5)!0.5!(6,1.5)$);
\draw[->, thick] (3,1.5) -- ($(3,1.5)!0.5!(3,3)$);
\draw[->, thick] (3,1.5) -- ($(3,1.5)!0.5!(3,0)$);
\shade[shading=ball, ball color=black!90] (3,1.5) circle (0.25em);

箭

我希望:一个从起点开始的箭头目标点的方向X 的长度。 :))

答案1

您可以通过这种方式指定哪个是length箭头:

\draw[->, thick] (3,1.5) -- ($(3,1.5)!1cm!(0,1.5)$);

其中length1cm

以下是修改后的示例:

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{calc}


\begin{document}
\begin{tikzpicture}
\draw[thick] (0,0) -- (6,0) -- (6,3) -- (0, 3) -- cycle;
\draw[->, thick] (3,1.5) -- ($(3,1.5)!1cm!(0,1.5)$);
\draw[->, thick] (3,1.5) -- ($(3,1.5)!1cm!(6,1.5)$);
\draw[->, thick] (3,1.5) -- ($(3,1.5)!1cm!(3,3)$);
\draw[->, thick] (3,1.5) -- ($(3,1.5)!1cm!(3,0)$);
\shade[shading=ball, ball color=black!90] (3,1.5) circle (0.25em);
\end{tikzpicture}
\end{document}

结果:

在此处输入图片描述

您可以calc在文档(13.5 坐标计算,pgfmanual 版本 2010 年 10 月 25 日)中找到有关该库的更多信息。


最快的实现方式:

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{calc}
\newlength\arrowlength
\setlength{\arrowlength}{1cm}
\begin{document}
\begin{tikzpicture}
\draw[thick] (0,0) -- (6,0) -- (6,3) -- (0, 3) -- cycle;
\foreach \destination in 
{{0,1.5},{6,1.5},{3,3},{3,0}}
\draw[->, thick] (3,1.5) -- ($(3,1.5)!\arrowlength!(\destination)$);
\shade[shading=ball, ball color=black!90] (3,1.5) circle (0.25em);
\end{tikzpicture}
\end{document}

相关内容