这不是标题为在 TikZ 中创建自由体图我对如何绘制这个特定的图表感到困惑:
假设我们要描述滑轮上的两个物体,并要绘制 2 个图表,每个箱子一个。它们看起来会像这样:
(向下箭头)m1g
细绳
质量 1(圆圈)
(向上箭头)T
和:
(向下箭头)m2g
细绳
质量 2(圆圈)
(向上箭头)T
以下是我目前得到的信息:
\documentclass[11pt]{article}
\usepackage{tikz}
\usepackage[pdftex]{graphicx}
\usetikzlibrary{quotes}
\begin{document}
\begin{tikzpicture}
\path [draw] (0,2) -- (0,1);
\path (0,2)
edge [near start, xshift=5pt, "$T$", <-, shorten >=10pt, shorten <=2.5pt] (0,1);
\path (0,1)
edge [very near end, xshift=5pt, "$m_1g$", ->, shorten <=10pt, shorten >=2.5pt] (0,0);
\node [circle, fill, radius=2.5pt, label=right:$mass_1$] at (0,1) {};
\end{tikzpicture}
\end{tikzpicture}
\end{document}
答案1
\documentclass[11pt]{article}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\begin{scope}
\draw[<-] (0,0) -- node[right]{$W_{m}$}(0,2)
node[circle,fill,inner sep=3mm,text=white,anchor=south] (m) {$m$};
\draw (m.north) -- node[right]{$T \uparrow$} +(0,2);
\end{scope}
\begin{scope}[shift={(2cm,-8mm)}]
\draw[<-] (0,0) -- node[right]{$W_{2m}$}(0,2)
node[circle,fill,inner sep=6mm,text=white,anchor=south] (m) {$m$};
\draw (m.north) -- node[right]{$T \uparrow$} +(0,2);
\end{scope}
\end{tikzpicture}
\end{document}
解释:
scope
围绕其内容形成一个组,以便我们可以对整个组执行操作(如移位)。每个 的node
内容与边框相隔inner sep
(换句话说,内容和边框之间的距离)。通过调整,inner sep
我们可以使节点变大或变小(以便刚好包围内容)。我们可以label
通过 来 一个节点(m)
,以便我们可以稍后使用该节点的锚点(例如m.north
),而{m}
是节点的内容。最后,表示从水平和垂直方向的点画(m.north) -- +(0,2)
一条线。m.north
0cm
2cm
答案2
这是上面两个物体之一的代码。第二个物体与第一个物体一样,但坐标和标签略有不同。
\documentclass[tikz, border=10pt]{standalone}
\usetikzlibrary{quotes}
\begin{document}
\begin{tikzpicture}
\path [draw] (0,2) -- (0,1);
\path (0,2)
edge [near start, xshift=5pt, "$T$", <-, shorten >=10pt, shorten <=2.5pt] (0,1);
\path (0,1)
edge [very near end, xshift=5pt, "$m_1g$", ->, shorten <=10pt, shorten >=2.5pt] (0,0);
\node [circle, fill, radius=2.5pt, label=right:$mass_1$] at (0,1) {};
\end{tikzpicture}
\end{document}
答案3
推荐使用 PSTricks 的图表。
\documentclass[pstricks,border=12pt,12pt]{standalone}
\usepackage{pst-node,pst-plot,esvect}
\begin{document}
\begin{pspicture}[arrows=->](8,6)
\rput(3,3){\Circlenode[radius=.5]{m}{$m$}}
\rput(6,3){\Circlenode[radius=1]{M}{$2m$}}
\pnode[0,-1](m){w} \pnode[0,2](m){t} \pnode[0,-2](M){W} \pnode[0,2](M){T}
\ncline{m}{w} \ncline{m}{t} \ncline{M}{W} \ncline{M}{T}
\uput[-90](w){$\vv*{W}{m}$} \uput[-90](W){$\vv*{W}{2m}$} \uput[90](t){$\vv{T}$} \uput[90](T){$\vv{T}$}
\psaxes[ticks=none](.5,2)(1.5,3)[$x$,0][$y$,90]
\end{pspicture}
\end{document}
答案4
另一种可能性是更严格地遵循给定草图的左侧部分。右侧可以很容易地以相同的方式添加...
\documentclass[12pt,tikz,border=3mm]{standalone}
\usetikzlibrary{positioning}
\begin{document}
\begin{tikzpicture}[
node distance = 0mm,
every node/.style = {inner sep=2pt}]
\coordinate (a) at (0,0);
\coordinate[below=11mm of a] (b);
\node[circle,draw,minimum size=3mm,
at=(b)] (c) {$m$};
\draw (a) -- (c);
\node[below right=of a] {$T\uparrow$};
\node[above left =of a] (d) {$\downarrow W_m$};
\node[above=of d.north west] {$\uparrow^+$};
\end{tikzpicture}
\end{document}