我想使用 Ti钾Z 绘制如下图:
我是 Ti 的新手钾Z.我的第一次尝试是
\begin{tikzpicture}[>=Latex]
\draw[thick] (0,0) rectangle (10mm,10mm);
\node at (0.5,0.5) {$M_{1}$};
\draw[thick,->](0.5,0)--(0.5,-1)node[below]{$M_{1}g$};
\draw[thick,->](0.5,1)--(0.5,2)node[above]{$T_1$};
\draw[thick,->](1,0.5)--(2,0.5)node[right]{$N_{31}$};
\draw[thick] (2,0) rectangle (10mm,10mm);
\node at (4.5,0.5) {$M_{1}$};
\draw[thick,->](4.5,0)--(4.5,-1)node[below]{$M_{1}g$};
\draw[thick,->](4.5,1)--(4.5,2)node[above]{$T_1$};
\draw[thick,->](4,0.5)--(3,0.5)node[above]{$N_{31}$};
\end{tikzpicture}
绘制前两个矩形。但是第二个矩形绘制在第一个矩形旁边(没有像 M1 和 M2 矩形之间的空间那样的空间)。我也不确定如何在 M3 中构建圆圈。任何指示都将不胜感激。
答案1
欢迎来到 TeX.SE!我认为 Ti 最大的优势之一钾Z 是,几乎可以用相对坐标做任何事情。下面的 MWE 说明了这一点,其中没有对象位于绝对坐标上(除了第一个框)。
\documentclass[tikz,border=3.14mm]{standalone}
\usetikzlibrary{positioning,arrows.meta,angles,quotes}
\begin{document}
\begin{tikzpicture}[>=Latex,Box/.style={draw,thick,minimum width=10mm,minimum
height=10mm}]
% first box
\node[Box] (M1){$M_{1}$};
\draw[thick,->](M1.south) -- ++(0,-0.5) node[below]{$M_{1}g$};
\draw[thick,->](M1.north) -- ++(0,0.5) node[above]{$T_1$};
\draw[thick,->](M1.east) -- ++(0.5,0) node[right] (N31){$N_{31}$};
% second box
\node[Box,right=1mm of N31] (M2){$M_{2}$};
\draw[thick,->](M2.south) -- ++(0,-0.5) node[below]{$M_{2}g$};
\draw[thick,->](M2.north) -- ++(0,0.5) node[above]{$N_{32}$};
\draw[thick,->](M2.east) -- ++(0.5,0) node[right] (T1){$T_{1}$};
% third box
\node[Box,right=1.5cm of M2,minimum size=2cm] (M3){$M_{3}$};
\draw[thick,->](M3.north) -- ++(0,0.5) node[above]{$N_{3}$};
\draw[thick](M3.north east) -- ++(0.3,0.3) node[circle,draw,minimum
size=3mm,fill=white] (Circ){};
\draw[thick,->] (Circ.north) -- ++(-0.5,0) node[left]{$T_1$};
\draw[thick,->] (Circ.east) -- ++(0,-0.5) node[below]{$T_1$};
\draw[thick,->]([xshift=-4mm]M3.south) -- ++(0,-0.5) node[below]{$M_{3}g$};
\draw[thick,->]([xshift=4mm]M3.south) -- ++(0,-0.5) node[below]{$N_{23}$};
% fourth box
\node[Box,right=1.5cm of M3,minimum size=1.5cm] (M4){$M_{4}$};
\draw[thick,->](M4.south) -- ++(0,-0.5) node[below]{$M_{4}g$};
\draw[thick,->](M4.north) -- ++(0,0.5) node[above]{$N_{4}$};
\draw[dashed]([yshift=-3mm]M4.north east) coordinate (aux1) -- ++(0.7,0) coordinate (aux2);
\draw[thick,->] (aux1) -- ++ (0.7,-0.7) coordinate (aux3) node[below]{$T_2$};
\draw pic ["$\theta$",angle eccentricity=1.33,draw,-,angle radius=4mm]
{angle = aux3--aux1--aux2};
\end{tikzpicture}
\end{document}
让我尝试解释一下这里发生的事情。
- 该
positioning
库用于将对象(节点)相对于彼此定位。例如,\node[Box,right=1.5cm of M2,minimum size=2cm] (M3){$M_{3}$};
表示框M3
应位于 右侧 1.5 厘米处。这有一个很大的优势,如果您决定增加和M2
之间的距离,您只需增加,其他一切都会自动移动。无需调整大量坐标。M2
M3
1.5cm
- 如您所见,我使用节点来绘制这些框。除了我不必在文本周围绘制矩形之外,我还可以使用节点的锚点来绘制其他元素,例如。在这里,我从下边界的中间(即锚点)向负方向 0.5 厘米处
\draw[thick,->](M1.south) -- ++(0,-0.5) node[below]{$M_{1}g$};
绘制一个箭头,并在下面添加一个节点。south
y
- 这也有助于绘制圆圈,我只需将箭头附加到北锚和东锚即可。
- 钛钾Z 还具有一个允许人们绘制和注释角度的库,如中所示
\draw pic ["$\theta$",angle eccentricity=1.33,draw,-,angle radius=4mm] {angle = aux3--aux1--aux2};
。