标记三角形

标记三角形

如何制作一个三角形(每边的长度不同)并标明边和角?我设法使用 制作了一个三角形pstricks,代码如下

\begin{pspicture}(0,-1.34)(6.8,1.34)
\psline[linewidth=0.04](6.78,0.88)(0.0,1.32)(0.58,-1.32)(6.74,0.86)(6.74,0.86)(6.76,0.84)
\end{pspicture}

输出为

在此处输入图片描述

我该如何标记线条和角度?

我查看了类似问题的答案,它们都使用了 tiks。如果它能让绘图变得更容易,我很乐意开始学习它。

答案1

您正在寻找的是tkz-euclide包。请看以下示例:

\documentclass[10pt]{standalone}
\usepackage{tkz-euclide}
\usetikzlibrary{angles,positioning,quotes,decorations.markings}

\begin{document}

\begin{tikzpicture}
\path (135:3) coordinate (A) (45:4) coordinate (B) (0:0) coordinate (C);
\draw (A)
-- (B) node [at start, left]{$A$} node [midway,above, sloped]{$m+n$}
-- (C) node [at start, right]{$B$} node [midway,below, sloped] {$2\sqrt{m n}$}
-- (A) node [at start, below]{$C$} node [midway, below, sloped] {$m-n$} -- cycle;
\draw 
pic[draw, angle radius=7.5mm,"$\theta$",angle eccentricity=.7] {angle = C--A--B}
pic[draw, angle radius=7.5mm,"$\phi$",angle eccentricity=.7] {angle = A--B--C}
pic[draw, angle radius=7.5mm,"$\beta$",angle eccentricity=.6] {angle = B--C--A};
\end{tikzpicture}

\end{document}

由此得出这个三角形:

在此处输入图片描述

如果你要使用PSTricks,你可以做同样的例子,像这样:

\documentclass[border=12pt,12pt]{standalone}
\usepackage{pst-eucl}
\begin{document}
\begin{pspicture}(10,7)
    \pstGeonode[CurveType=polygon,PosAngle={180,-90,0}](1,4){A}(5,1){C}([offset=-7]{A}C){B}
    \pstMarkAngle[MarkAngleRadius=1,LabelSep=.7]{C}{A}{B}{$\theta$}
    \pstMarkAngle[MarkAngleRadius=1,LabelSep=.7]{A}{B}{C}{$\phi$}
    \pstMarkAngle[MarkAngleRadius=1,LabelSep=.6]{B}{C}{A}{$\beta$}
    \psset{shortput=nab,linestyle=none,nrot=:U}
    \pcline(A)(B)^{$m+n$}
    \pcline(A)(C)_{$m-n$}
    \pcline(C)(B)_{$2\sqrt{mn}$}
\end{pspicture}
\end{document}

按顺序运行:LaTeX-DVI-PS-PDF 得到输出:

在此处输入图片描述

答案2

为了完整起见,这里是 AboAmmar 图表的 MetaPost 版本(相同的标签栏,略有不同的三角形)。

由于 MetaPost 现在是 LuaTeX 的一部分,我将我的代码包含在 LuaLaTeX 程序中,但它可以独立创建和执行。

注意:以下代码需要最新版本的软件包(2.10.1),它修复了与宏的偶尔后缀()luamplib相关的错误。@#vardef

\documentclass[border=2mm]{standalone}
\usepackage{luamplib}
  \mplibsetformat{metafun}
  \mplibtextextlabel{enable}
\begin{document}
  \begin{mplibcode}
    u := 1cm;
    pair A, B, C; A = origin; B = u*(5, 2); C = u*(2, -3); 

    vardef rotatedlabel@#(expr str, pos, angl) =
      draw thelabel@#(str, pos) rotatedaround (pos, angl)
    enddef;

    beginfig(1);
      draw A--B--C--cycle;
      label.lft("$A$", A); label.rt("$B$", B); label.bot("$C$", C);
      rotatedlabel.top("$m+n$", .5[A,B], angle(B-A)); 
      rotatedlabel.bot("$2\sqrt{mn}$", .5[B,C], angle(B-C)); 
      rotatedlabel.bot("$m-n$", .5[A,C], angle(C-A));
      draw anglebetween(B--A, B--C, "$\beta$");
      anglelength := 13pt; % default 20pt
      draw anglebetween(A--B, A--C, "$\alpha$");
      draw anglebetween(C--A, C--B, "$\gamma$");
    endfig;
  \end{mplibcode}
\end{document}

输出:

在此处输入图片描述

相关内容