答案1
\documentclass[10pt,a4paper]{article}
\usepackage[left=2.00cm, right=1.00cm]{geometry}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\coordinate (a) at (0,0);
\coordinate (b) at (4,0);
\coordinate (c) at (4,2);
\draw (a) -- (b)node[midway, below]{a} -- (c)node[midway,right]{b} -- (a)node[midway,left, above]{c}; % Triangle.
\draw (a) node[anchor=east,align=center] {A};
\draw (b) node[anchor=west,align=center] {B};
\draw (c) node[anchor=south]{C};
\end{tikzpicture}
\end{document}
编辑-- 当然,语法更容易理解tikz-euclide
\documentclass[10pt,a4paper]{article}
\usepackage[left=2.00cm, right=1.00cm]{geometry}
%\usepackage{tikz}
\usepackage{xcolor} % before tikz or tkz-euclide if necessary
\usepackage{tkz-euclide} % no need to load TikZ
\begin{document}
\begin{tikzpicture}[scale=1.0]
%define points A,B,C
\tkzDefPoint(0,0){C}
\tkzDefPoint(8,0){B}
\tkzDefPoint(8,4){A}
%label point A,B,C
\tkzLabelPoints(B,C)
\tkzLabelPoints[above](A)
%draw triangleABC
\tkzDrawPolygon[thick,fill=yellow!15](A,B,C)
%marking right angles
\tkzMarkRightAngle(A,B,C)
%marking the angles
\tkzFillAngle[fill=blue!20, opacity=0.5](B,C,A)
\tkzLabelAngle[pos=1.25](B,C,A){$\alpha$}
\tkzMarkAngle(B,C,A)
%label the sides
\tkzLabelLine[pos=0.5,above, ](C,A){$a$}
\tkzLabelLine[pos=0.5,below, ](C,B){$b$}
\tkzDrawSegment[style=red, dim={$c$,15pt,midway,font=\normalsize, rotate=90}](A,B)
%draw the points
\tkzDrawPoints(A,B,C)
\end{tikzpicture}
\end{document}
答案2
我不同意评论和回复中提出的许多论点。主要问题是
制作这样的数学图形需要使用哪些命令?在哪里可以了解更多信息?
TikZ 的建议不合理,但我还是喜欢 TikZ。你可以用 TikZ 做任何事情,甚至可能做太多了,但它不是专门为制作几何图形而设计的。
使用外部工具制作图形也不是一个好的解决方案。首先,由于风格差异,字体很难保持一致;其次,如果必须修改图形,则不太实用。
还有其他解决方案:如果您使用过 Pstricks,那么可以使用 pst-eucl;如果没有,您可以使用 tkz-euclide,它基于 TikZ,但只进行欧几里得几何;如果您使用 lualatex,那么可以使用 tkz-elements。tkz-elements 不仅允许您创建几何图形,而且还提供一系列计算选项。后一种解决方案的优势在于图形代码在您的主代码中,使用合适的包您可以轻松修改它。
让我们看几个例子:
1)以 tkz-euclide 为例,你想要我们所说的:学校直角三角形
\documentclass{standalone}
\usepackage{tkz-euclide}
\begin{document}
\begin{tikzpicture}
\tkzDefPoints{0/0/A,4/0/B}
\tkzDefTriangle[school](A,B)
\tkzGetPoint{C}
\tkzMarkRightAngles(C,B,A)
\tkzLabelAngle[pos=0.8](B,A,C){$30^\circ$}
\tkzLabelAngle[pos=0.8](C,B,A){$90^\circ$}
\tkzLabelAngle[pos=0.8](A,C,B){$60^\circ$}
\tkzDrawPolygon(A,B,C)
\tkzLabelPoints(A,B)
\tkzLabelPoints[above](C)
\end{tikzpicture}
\end{document}
\documentclass{standalone}
\usepackage{tkz-euclide}
\begin{document}
\begin{tikzpicture}
\tkzDefPoint(0,0){A}
\tkzDefPoint(5,0){B}
\tkzDefTriangle[two angles = 20 and 90](A,B)
\tkzGetPoint{C}
\tkzDrawSegment(A,B)
\tkzDrawPoints(A,B)
\tkzLabelPoints(A,B)
\tkzDrawSegments(A,C B,C)
\tkzDrawPoints(C)
\tkzLabelPoints[above](C)
\tkzLabelAngle[pos=1.4](B,A,C){$20^\circ$}
\tkzMarkRightAngle[fill=blue!10](C,B,A)
\tkzLabelSegment[sloped,above](A,C){$b$}
\end{tikzpicture}
\end{document}
% !TEX TS-program = lualatex
\documentclass{article}
\usepackage{tkz-euclide}
\usepackage{tkz-elements}
\begin{document}
\begin{tkzelements}
z.A = point : new ( 0 , 0 )
z.B = point : new ( 4 , 0 )
z.C = point : new ( 4 , 3 )
L.AC = line : new ( z.A , z.C )
z.H = L.AC : projection (z.B)
T.ABC = triangle : new (z.A,z.B,z.C)
z.O = T.ABC.circumcenter
z.I = T.ABC.incenter
z.I_B = L.AC : projection (z.I)
\end{tkzelements}
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawPolygon(A,B,C)
\tkzDrawSegments(B,H O,A)
\tkzDrawCircles(O,A I,I_B)
\tkzDrawPoints(A,B,C,H,O,I)
\tkzLabelPoints(A,B,C,H,O,I)
\end{tikzpicture}
The length of AC is \tkzUseLua{length(z.A,z.C)}
The length of BH is \tkzUseLua{length(z.B,z.H)}
\end{document}
该解决方案的优点:
- 计算非常精确。它们是在描图之前进行的
- 你可以使用 tkz-euclide 或 Tikz 进行跟踪
- 代码很容易修改
- 在 LaTex 中,您可以访问您的图形,并且可以在代码中使用与您的图形相关的长度和角度。
- 最后,您可以访问数十个预定义的数学函数。(参见文档)
答案3
\draw
为了完善@jsbibra的回答,我添加了角度标记。所有内容也在单个命令中定义。
\documentclass{standalone}
\usepackage{tikz}
\usetikzlibrary{angles, quotes}
\begin{document}
\begin{tikzpicture}
\draw
(0, 0) coordinate (A) node[left] {$A$} % a node A at (0,0) with a label
-- (4,0) coordinate (C) node[right] {$C$} % a node C at (4,0) with a label
node[midway, below]{$b$} % a label betwenn A and C
-- (4,2) coordinate (B) node[above right] {$B$} % a node B at (4,2) with a label
node[midway, right]{$a$} % a label between C and B
-- cycle % close the path
node[midway, above, sloped]{$c$}% a label between B and A
pic ["$\alpha$", draw, angle eccentricity=-.5, green] {right angle=A--C--B} % right angle marker
; % end of TikZ command
\end{tikzpicture}
\end{document}
答案4
没有人回答过这个问题的第二部分,“我在哪里可以学到更多?”对于这个问题,应该去的地方是 TikZ 手册(texdoc tikz
在命令提示符下输入以打开文档)。
内容很多。手册超过 1000 页(!),但真正开始的关键部分是完成不到 100 页的教程。其余部分包括一个广泛的参考部分,当您获得经验并有特定需求时,您会深入了解它。
如果您更喜欢以可视化的方式处理图表,那么本问题的答案中描述了许多图形前端:对于 PGF/TikZ 来说,所见即所得 (WYSIWYG)?