我在 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)$);
其中length
是1cm
。
以下是修改后的示例:
\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}