我已经尝试了一段时间才能让这个问题得到很好的解决,但我真的很难避免多余的图片。
我想绘制$\triangle ABC$,其边长为:7,13,14。
下面的代码产生了结果,但太多了。我不希望 (a) 圆圈或 (b) 图像缩放、重新居中、空白或任何认为圆圈存在的东西。我也不想手动定义 $\measuredangle G = 67.19^\circ$;是的,它得到了答案,但这违背了问题的精神。
\documentclass{article}
\usepackage{tkz-euclide}
\usetikzlibrary{shapes,shapes.geometric,intersections,through}
\begin{document}
\begin{tikzpicture}[scale=.5]
\coordinate [label=below:$G$] (g) at (0,0);
\coordinate [label=below:$O$] (o) at (14,0);
\node (Circ1) at (g) [draw, circle through=($ (g) + (0:7) $)] {};
\node (Circ2) at (o) [draw, circle through=($ (o) + (0:13) $)] {};
\coordinate [label=above:$E$] (e) at (intersection 2 of Circ1 and Circ2);
\draw (g) -- (e) -- (o) -- cycle;
\end{tikzpicture}
\end{document}
答案1
您可以删除绘制命令并忽略某些命令以计算边界框!
\documentclass{standalone}
\usepackage[english]{babel}
\usepackage{tkz-euclide}
\usetikzlibrary{shapes,shapes.geometric,intersections,through}
\begin{document}
\begin{tikzpicture}[scale=.5]
\coordinate [label=below:$G$] (g) at (0,0);
\coordinate [label=below:$O$] (o) at (14,0);
\begin{pgfinterruptboundingbox}
\node (Circ1) at (g) [circle through=($ (g) + (0:7) $)] {};
\node (Circ2) at (o) [circle through=($ (o) + (0:13) $)] {};
\end{pgfinterruptboundingbox}
\coordinate [label=above:$E$] (e) at (intersection 2 of Circ1 and Circ2);
\draw (g) -- (e) -- (o) -- cycle;
\end{tikzpicture}
\end{document}
答案2
您正在加载tkz-euclide
但并未使用它,因此这里有一个带有它的版本。
E
我们可以使用 which 来找到点,\tkzInterCC
它的作用和你做的一样,但只用一个命令。这会找到两个点,在我们的例子中是E
和E'
。一个在上面,一个在下面,选择你喜欢的一个。
您还可以绘制我们在这种情况下知道的长度,但它们可以自动计算。
输出
无长度
长度
代码
\documentclass[margin=10pt]{standalone}
\usepackage{tkz-euclide}
\usetkzobj{all}
\begin{document}
\begin{tikzpicture}[scale=.5]
\tkzDefPoint(0,0){G}
\tkzDefPoint(14,0){O}
\tkzInterCC[R](G,7cm)(O,13cm)
\tkzGetPoints{E}{E'}
\pgfresetboundingbox % removes white space
\tkzDrawPolygon(G,E,O)
\tkzLabelPoints[left](G)
\tkzLabelPoints[above](E)
\tkzLabelPoints[right](O)
% lengths (automatic)
\tkzCalcLength[cm](G,O)\tkzGetLength{GOl}
\tkzCalcLength[cm](E,O)\tkzGetLength{EOl}
\tkzCalcLength[cm](G,E)\tkzGetLength{GEl}
\tkzLabelSegment[midway, sloped, below](G,O){$\pgfmathprintnumber\GOl$ cm};
\tkzLabelSegment[midway, sloped, above right](E,O){$\pgfmathprintnumber\EOl$ cm};
\tkzLabelSegment[midway, sloped, above left](G,E){$\pgfmathprintnumber\GEl$ cm};
\end{tikzpicture}
\end{document}
答案3
这个问题正是文档
10.3.1 已知边长构造三角形
以B为中心圆很大,所以可以只使用圆弧。
\documentclass[margin=10pt]{standalone}
\usepackage{tkz-euclide}
\usetkzobj{all}
\begin{document}
\begin{tikzpicture}[scale=.5]
\tkzDefPoint(0,0){A} \tkzDefPoint(14,0){B}
\tkzDrawCircle[R,dashed](A,7 cm) \tkzDrawCircle[R,dashed](B,13 cm)
\tkzInterCC[R](A,7 cm)(B,13 cm) \tkzGetPoints{C}{D}
\tkzDrawPolygon(A,B,C)
\tkzCompasss(A,C B,C)
\tkzLabelSegment[below](A,B){$14$ cm}
\tkzLabelSegment[above left](A,C){$7$ cm}
\tkzLabelSegment[above right](B,C){$13$ cm}
\tkzDrawPoints[color=red](C)
\tkzDrawPoints[color=blue](A,B)
\end{tikzpicture}
\end{document}
变体
\documentclass[margin=10pt]{standalone}
\usepackage{tkz-euclide}
\usetkzobj{all}
\begin{document}
\begin{tikzpicture}[scale=.5]
\tkzDefPoint(0,0){A} \tkzDefPoint(14,0){B}
\tkzInterCC[R](A,7 cm)(B,13 cm) \tkzGetPoints{C}{D}
\tkzDrawPolygon(A,B,C)
\tkzCompasss[length=3](A,C B,C)
\tkzLabelSegment[below](A,B){$14$ cm}
\tkzLabelSegment[above left](A,C){$7$ cm}
\tkzLabelSegment[above right](B,C){$13$ cm}
\tkzDrawPoints[color=red](C)
\tkzDrawPoints[color=blue](A,B)
\end{tikzpicture}
\end{document}