不会遮挡直角标记的阴影

不会遮挡直角标记的阴影

下图中,边长为 $c$ 的正方形上应该添加阴影线(我猜是东北方向)。正方形的一个角上有一个直角标记。是否有代码指示 TikZ 绘制这些阴影线,使其不进入由这个直角标记形成的小正方形?但我希望这些阴影线能到达直角标记。(什么代码可以指示 TikZ 为边长为 $c$ 的正方形添加阴影?阴影应该绘制在由这个直角标记形成的小正方形中。)

顺便说一句,这是毕达哥拉斯定理的演示图。我看到一个网站将此图归功于 12 世纪印度数学家 Bhaskara。有人对此有引文吗?

\documentclass[10pt]{amsart}
\usepackage{tikz}
\usetikzlibrary{calc,angles,positioning,intersections,quotes,decorations.markings}
\usepackage{tkz-euclide}
\usetkzobj{all}


\begin{document}

\begin{tikzpicture}
\path (-3,-3) coordinate (A) (-3,3) coordinate (B) (3,3) coordinate (C) (3, -3) coordinate (D);
\path (-3,-1) coordinate (P) (-1,3) coordinate (Q) (3,1) coordinate (R) (1,-3) coordinate (S);
\draw (A) -- (P) node [midway, left]{$a$} -- (B) node [midway, left]{$b$}
-- (Q) node [midway, above]{$a$} -- (C) node [midway, above]{$b$}
-- (R) node [midway, right]{$a$} -- (D) node [midway, right]{$b$} 
-- (S) node [midway, below]{$a$} -- (A) node [midway, below]{$b$};
\draw (P) -- (Q) node [midway, left]{$c$} -- (R) node [midway, right, above]{$c$} -- (S) node [midway, right]{$c$} -- (P) node [midway, below]{$c$};
\draw[|<->|] ($(A)!7mm!-90:(D)$)--node[fill=white,sloped] {$a + b$} ($(D)!7mm!90:(A)$);
\draw[|<->|] ($(A)!7mm!90:(B)$)--node[fill=white,sloped] {$a + b$} ($(B)!7mm!-90:(A)$);
\tkzMarkRightAngle(P,A,S);
\tkzMarkRightAngle(Q,P,S);
\end{tikzpicture}

\end{document}

答案1

要绘制正方形,您可以通过加载patterns库来使用这些图案;

\draw[pattern=north east lines] (P) -- (Q) node [midway, left]{$c$}
     -- (R) node [midway, right, above]{$c$} -- (S) node [midway, right]{$c$}   
     -- (P) node [midway, below]{$c$} -- cycle;

此外,角度标记接受绘图选项

\tkzMarkRightAngle[fill=white](Q,P,S);

填满正方形。然后你得到

在此处输入图片描述

相关内容