如何用 Latex 绘制毕达哥拉斯证明 (Bhaskara's Proof)

如何用 Latex 绘制毕达哥拉斯证明 (Bhaskara's Proof)

我需要画出毕达哥拉斯的证明(巴斯卡拉的证明)(见下图)。我对乳胶还很陌生,对乳胶了解不多。蒂克兹包裹。

这是 Bhaskara 的证明

我从正方形开始,但现在我卡住了,不知道如何继续。((非)对角线对我来说很难)

我怎样才能有效地做到这一点?

谢谢!

答案1

毕达哥拉斯证明的图片

以下是我制作基本形状的方法,我将标签留给您。

\documentclass{article}
\usepackage{tikz}

\begin{document}
    \begin{tikzpicture}[thick]
        \draw (0, 0) rectangle (8, 8);
        \node[rotate=34.8, minimum size=2cm] (S) at (4, 4) {};
        \draw (0, 0) -- (S.south east);
        \draw (0, 8) -- (S.south west);
        \draw (8, 0) -- (S.north east);
        \draw (8, 8) -- (S.north west);
    \end{tikzpicture}
\end{document}

它的工作原理如下。首先绘制外框。然后S在中间绘制一个节点,默认节点形状为正方形。将此节点的角连接到外正方形的角,但逆时针旋转一个角,这样外框的左上角就到达内框的左下角,等等。然后旋转节点。有两种方法可以做到这一点,反复试验,尝试角度直到一切都排列整齐,或者数学。

数学,适合那些对数学感兴趣的人

设为d内盒边长,c为外盒边长。

然后查看图表,我们看到d = a - b将其a作为三角形两个非斜边中较长的一边。

然后我们观察这些三角形,注意到左下方从水平线到近对角线的角度与内侧正方形的角度相同,将此角度称为theta

应用三角学的定义,我们知道b/c = sin(theta)a/c = cos(theta)。因此(b - a)/c = sin(theta) - cos(theta) = d/c

因为dc已知(我任意选择了 8 厘米和 2 厘米),我们只需要找到theta,这可以用三角恒等式来完成,或者像我一样,询问 wolfram alpha。它给出的答案不一定立即正确,例如,我必须减去 180 度才能得到 34.8 度的答案。

答案2

您的问题标题要求使用 LaTeX 解决方案,因此让我提出一种使用 MetaPost ❤️ 的替代方案:

\documentclass{standalone}
\usepackage[latex,shellescape]{gmp}
%#1 size, #2 angle 
%(the triangle will have #2/2 as its least angle)
\newcommand\Bhaskara[2]%
{\begin{mpost}[name=bhaskara]
vardef Bhaskara(expr u, v) =
    image(
    for i = 1 upto 4:
    %Triangles in a semi-circle are right-angled
    draw (right -- dir v -- left -- cycle)
        %So right angles are inner to the square
        reflectedabout(left,right)
        %Triangles at each side
        rotated (90i-90) shifted (dir 90i)
        scaled (u/2);
    endfor
    )
enddef;
draw Bhaskara(\the\dimexpr#1\relax,\the\numexpr#2\relax);
\end{mpost}\usempost{bhaskara}}
\begin{document}
\Bhaskara{2cm}{15}
\Bhaskara{2cm}{30}
\Bhaskara{2cm}{45}
\Bhaskara{2cm}{60}
\Bhaskara{2cm}{75}
\end{document}

在此处输入图片描述

答案3

还有另一种 tikz 方法,参数化并绘制“仅一条线”。

\documentclass[border=2mm]{standalone}
\usepackage{tikz}

\begin{document}
\begin{tikzpicture}[line join=round]
% Triangle information
\def\b{4} % catheti, b>c
\def\c{3}
\pgfmathsetmacro\B{atan(\c/\b)}       % acute angle
\pgfmathsetmacro\a{sqrt(\b*\b+\c*\c)} % hypotenuse
\foreach\i in {0,90,180,270}
  {%
    \begin{scope}[rotate=\i, shift={(-0.5*\a,-0.5*\a)}]
      \draw (0:\a) -- (0,0) -- (\B:\b);
    \end{scope}
  }
\end{tikzpicture}
\end{document}

在此处输入图片描述

答案4

还有另一种 TikZ 方法,使用 s 的几何变换pic,也只需一个命令\path

在此处输入图片描述

\documentclass[tikz,border=5mm]{standalone}
\begin{document}
\begin{tikzpicture}[join=round,declare function={c=2;},
righttriangle/.pic={\draw[magenta] (180:c)--(0:c)--(70:c)--cycle;}]
\path 
(0,0)   pic{righttriangle}
(0,2*c) pic[scale=-1]{righttriangle}
(0,0)   pic[shift={(c,c)},rotate=90]{righttriangle}
(0,0)   pic[shift={(-c,c)},rotate=-90]{righttriangle};
\end{tikzpicture}
\end{document}

相关内容