如何制作一个三角形(每边的长度不同)并标明边和角?我设法使用 制作了一个三角形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}
输出: