向量上的直角三角形注解

向量上的直角三角形注解

我正在绘制一些力图,并且非常希望能够在一条线上绘制一个小直角三角形,就像下面的快照一样。

现在我正在像这样绘制力矢量:

\draw[force,->] (O) -- (C) 
    node[below] {$F_1 = \SI{850}{\newton}$};

我尝试创建另一个节点node[midway] (midPoint) {}\draw (midPoint) -- ++(0,-3mm) -- ++(4mm,0)但是,矢量和这个小三角形之间却存在一些难看的间隙。

有没有我不知道的库可以帮助创建这样的注释?或者也许是更惯用的 tikz 方式?

直线上的直角三角形

谢谢你的时间!

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

编辑:所以我重新利用了一个与之相关的答案(结构工程中的三角形约束) 在某种程度上:

RightAngle/.style=
{
    decoration={
        markings,
        mark=at position 0.5 with {
        \draw[-, thin] (0,0) -- (0,-3mm) 
            node[midway, left] {\tiny 3};
        \draw[-,thin] (0,-3mm) -- (4mm, 0) 
            node[midway, below] {\tiny 4};
        }
    },
    postaction=decorate
}

\draw[force,->, RightAngle] (O) -- (C) 
    node[below right] {$F_1 = \SI{850}{\newton}$};

这让我几乎到达了目标!但是我仍然缺少一些与新局部坐标系有关的东西。我如何让那 3 条腿垂直向下(相对于标准坐标系)?

斜三角形

答案1

这里有tikz一种方法可以做到:选择矢量本身的起点和终点:

\coordinate (Start Point) at ($(O)!0.3!(C)$);
\coordinate (End Point)   at ($(O)!0.5!(C)$);

在上图中,(Start Point)0.3沿长度方向的,是(End Point)沿0.5路径方向的,使用|-连接它们,画出一条垂直线,然后是一条水平线:

在此处输入图片描述

代码:

\documentclass{article}
\usepackage{siunitx}
\usepackage{tikz}
\usetikzlibrary{calc}

\begin{document}
\begin{tikzpicture}
    \coordinate (O) at (0,0);
    \coordinate (B) at (3,4);
    \coordinate (C) at (3,-2);
    
    \draw[ultra thick, red, -latex] (O) -- (B) node[above] {$F_1 = \SI{950}{\newton}$};
    \coordinate (Start Point) at ($(O)!0.3!(B)$);
    \coordinate (End Point)   at ($(O)!0.5!(B)$);
    \draw [red] (Start Point) |- (End Point);
    
    \draw[ultra thick, blue, -latex] (O) -- (C) node[below] {$F_1 = \SI{850}{\newton}$};
    \coordinate (Start Point) at ($(O)!0.3!(C)$);
    \coordinate (End Point)   at ($(O)!0.5!(C)$);
    \draw [blue] (Start Point) |- (End Point);
\end{tikzpicture}
\end{document}

答案2

仅用于使用 PSTricks 进行打字练习。

选项1

\documentclass[pstricks,border=12pt,12pt]{standalone}
\usepackage{pst-eucl}
\psset
{
    PointName=none,
    PointSymbol=none,
    shortput=nab,
    linewidth=2pt,
    linecap=1,
}
\usepackage{siunitx}
\begin{document}
\begin{pspicture}(5,-4)
    \pstGeonode
        {A}
        (4,-3){B}   
        ([nodesep=1]{B}A){A'}
        ([offset=-30pt]A'){C}
        ([nodesep=40pt]C){B'}
    \ncline[linestyle=none]{A'}{B'}^{5}
    \ncline[linecolor=gray]{A'}{C}_{3}
    \ncline[linecolor=gray]{C}{B'}_{4}
    \ncline{->}{A}{B}
    \uput[-90](B){$F_1=\SI{850}{\newton}$}
\end{pspicture}
\end{document}

选项 2

\documentclass[pstricks,border=12pt,12pt]{standalone}
\usepackage{pst-eucl}
\psset
{
    PointName=none,
    PointSymbol=none,
    shortput=nab,
    linewidth=2pt,
    linecap=1,
}
\usepackage{siunitx}
\begin{document}
\begin{pspicture}(5,-4)
    \pstGeonode{A}(4,-3){B}([nodesep=1]{B}A){A'}([nodesep=50pt]{B}A'){B'}(A'|B'){C}
    \ncline[linestyle=none]{A'}{B'}^{5}
    \ncline[linecolor=gray]{A'}{C}_{3}
    \ncline[linecolor=gray]{C}{B'}_{4}
    \ncline{->}{A}{B}
    \uput[-90](B){$F_1=\SI{850}{\newton}$}
\end{pspicture}
\end{document}

在此处输入图片描述

答案3

另一个 PSTricks 解决方案。运行xelatex

\documentclass[pstricks,border=12pt]{standalone}
\usepackage{pst-node}
\begin{document}

\begin{pspicture}[shortput=nab,arrowscale=1.5](5,-4)
\pnodes(0,0){A}(4,-3){B}   
\pcline[linewidth=1.5pt,arrows=->](A)(B)
\psLNode(A)(B){0.15}{C} \psLNode(A)(B){0.4}{D}
\pcline[linewidth=0.5pt](C)(C|D)_3 
\pcline[linewidth=0.5pt](C|D)(D)_4
\pcline[linestyle=none](C)(D)^5
\uput[-90](B){$F_1=850\,\textrm{N}$}
\end{pspicture}

\end{document}

在此处输入图片描述

相关内容