我试图将平行四边形放入坐标系中,以便它从梯形的左下角开始。但是,问题是坐标轴不从那个角开始,而且我似乎也没有正确设置 x 轴。
有人知道如何解决这个问题吗?
\begin{tikzpicture}
\node (a) [shape=trapezium, draw, minimum width=3cm, trapezium right angle=120, trapezium left angle=60] {};
\node (b) [below left] at (a.bottom left corner) {};
\node (d) [below left] at (a.bottom right corner) {};
\node (c) at (b |- 3,2) {B};
\node (e) at (d |- 3,2) {E};
%\draw (b |- ,2) node {B};
\draw[->] (b) -- (c);
\draw[->] (b) -- (3,-1);
%\draw [->] b -- ++ (1,2);
\end{tikzpicture}
答案1
您似乎使它变得比需要的更复杂,您可以使用相对坐标从角落开始绘制一条水平线和一条垂直线。
轴线不从角落开始的原因是,你的b
节点位于below left
角落,并且节点默认具有非零大小,如中所述为何我的 TikZ 线段无法合并?
\documentclass[border=5mm]{standalone}
\usepackage{tikz}
\usetikzlibrary{shapes.geometric}
\begin{document}
\begin{tikzpicture}
\node (a) [shape=trapezium, draw, minimum width=3cm, trapezium right angle=120, trapezium left angle=60] {};
\draw [->] (a.bottom left corner) -- +(0,2) node[above] (b) {B};
\draw [->] (a.bottom left corner) -- +(4,0);
\node at (b-|a.bottom right corner) {E};
\end{tikzpicture}
\end{document}
答案2
首先,我同意 Torbjørn 的观点,你应该直接使用相对坐标。但是,在更复杂的图片中,你可能需要设置新坐标。你在这里遇到的问题是,即使是空的node
也会占用空间。你可以用不同的方法解决这个问题,例如通过 将节点空间设置为零inner sep=0pt
,或者使用\coordinate
(本质上是一个没有空间和参数的节点)。这里我使用coordinate
。(我还打印了一些坐标以供帮助,并将 E 设置在我认为更合适的位置)。
\documentclass[border=5mm]{standalone}
\usepackage{tikz}
\usetikzlibrary{shapes}
\begin{document}
\begin{tikzpicture}
\node (a) [shape=trapezium, draw, minimum width=3cm, trapezium right angle=120, trapezium left angle=60] {};
\coordinate (b) at (a.bottom left corner);
\coordinate (d) at (a.bottom right corner);
\draw[->] (b) -- +(0,2) node[above]{B};
\draw[->] (b) -- +(3,0) node[right]{E};
%%
\draw[red] (a.center) circle (1pt) node[anchor=north east]{a};
\draw[red] (b) circle (1pt) node[anchor=north east]{b};
\draw[red] (d) circle (1pt) node[anchor=north east]{d};
\end{tikzpicture}
\end{document}