受力梁

受力梁

我使用了在这个类似问题的答案中找到的代码绘制梁以进行机械计算 进行了相应修改。

\documentclass[tikz,border=3.14mm]{standalone}
\begin{document}
\begin{tikzpicture}[>=latex,force/.style={->,line width=2pt,red}, %<- define styles
displacement/.style={->,line width=1pt,green!70!black}]
    \draw[line width=3pt] (0,0) -- (10,0);
    \draw[force] (6,0) -- ++ (0,-1.5) node [below] {$F=mg$};
\draw[force] (0,0) -- ++ (0,1.5) node [above]{$F_A$};
\draw[force] (5,0) -- ++ (0,1.5) node [above]{$F_C$};
\draw[force] (10,0) -- ++ (0,1.5) node [above]{$F_B$};
    \draw[displacement] (10.2,0) -- (11.7,0) node [above]{x};
    \draw[displacement] (0,-0.2) -- (0,-1.7) node [below] {y};
    \path (0,0) -- (10,0) node[pos=0.25] (l) [above,blue] {$\frac{\ell}{2}$}
    node[pos=0.55] (l2) at (6,0) [below,blue] {$\frac{\ell}{5}$};
%      node[pos=1] (l3) at (10,2) [above,blue] {$\frac{4\ell}{5}$};
    \draw [fill,green!70!black](0,0)circle[radius=0.5mm];
\end{tikzpicture}
\end{document}

我如何添加箭头和线条以及文本,如下图所示?非常感谢您的帮助。 在此处输入图片描述

答案1

您可以在给定坐标的略上方或略下方创建新节点。例如,

\draw (0,0) node[above=3mm, inner sep=0, outer sep=0](A1){} -- (0,1.5);

A1将在 上方 3 毫米处放置一个名为 的空节点(0,0)。我创建了一个名为 的样式spot,以便可以重复使用该样式。标签箭头及其标签也有新样式,我已将它们全部添加到序言中的 中,但您可以根据需要tikzset将这些样式添加到您的 中。tikzpicture

然后,您可以使用代码绘制从一个节点到另一个节点的标签箭头

\draw[<->, labelarrow] (A1)--node[mylabel] {$\frac{\ell}{2}$}(A2);

在此处输入图片描述

\documentclass{article}
\usepackage{tikz}

\tikzset{mylabel/.style={fill=white, text=blue, inner sep=1pt},
    labelarrow/.style={red, very thick},
    spot/.style={above=#1, inner sep=0, outer sep=0},
    spot/.default={3mm}}

\begin{document}
\begin{tikzpicture}[>=latex,force/.style={->,line width=2pt,red}, %<- define styles
displacement/.style={->,line width=1pt,green!70!black}]
    \draw[line width=3pt] (0,0) -- (10,0);
    \draw[force, shorten <=-6mm] (6,0)node[spot](A3){}node[spot=-3.5mm](A6){} -- ++ (0,-1.5) node [below] {$F=mg$};
\draw[force] (0,0)node[spot](A1){} -- ++ (0,1.5) node [above]{$F_A$};
\draw[force, shorten <=-5mm] (5,0)node[spot](A2){}node[spot=-3.5mm](A5){} -- ++ (0,1.5) node [above]{$F_C$};
\draw[<->, labelarrow] (A1)--node[mylabel] {$\frac{\ell}{2}$}(A2);
\draw[<-, labelarrow] (A5)--++(-.5,0);
\draw[<-, labelarrow] (A6)--++(.5,0);
\path (A5)--node[mylabel] {$\frac{\ell}{5}$}(A6);
\draw[force] (10,0)node[spot](A4){} -- ++ (0,1.5) node [above]{$F_B$};
\draw[<->, labelarrow] (A3)--node[mylabel] {$\frac{4\ell}{5}$}(A4);
    \draw[displacement] (10.2,0) -- (11.7,0) node [above]{x};
    \draw[displacement] (0,-0.2) -- (0,-1.7) node [below] {y};
    \draw [fill,green!70!black](0,0)circle[radius=0.5mm];
\end{tikzpicture}
\end{document}

相关内容