绘制流体静力学佯谬。用多个开口填充物体

绘制流体静力学佯谬。用多个开口填充物体

流体静力学佯谬,认为任何容器中水的高度与容器的形状无关。图片如下。

流体静力学佯谬

我可以定义每个角来绘制黑线,然后使用其中一些来定义蓝色区域。但我不认为这是正确的做法。

所以我没有 MWE,因为答案的方法可能与我的想法完全不同。(绘图仅作为说明)

有什么建议么?

答案1

代码将连接的线路径定义为\PathA\PathE

路径组合成闭合路径进行填充。高度设置是通过使用具有所需填充高度的矩形作为剪切路径来实现的。

最后绘制出线条路径。

\documentclass{article}
\usepackage{tikz}

\begin{document}
  \newcommand*{\Drawing}[1]{%    
    \begin{tikzpicture}
      \def\unit{5mm}
      \tikzset{
        x=\unit,
        y=\unit,
      }

      \def\PathA{% from right to left
        (17, 5) -- (18, 4) -- (18, 3.5)
        -- (17, 2.5) -- (17, 0) -- (0, 0) -- (0, 5)
      }
      \def\PathB{
        (1, 5) -- (1, 1)
        -- (3, 1) -- (3, 3) -- (2, 5)
      }
      \def\PathC{
        (5, 5) -- (4, 3) -- (4, 1)
        -- (6, 1) -- (8, 5)
      }
      \def\PathD{
        (9, 5) -- (11, 1)
        -- (12, 1) -- (12, 2) -- (13, 3) -- (11, 5)
      }
      \def\PathE{
        (12, 5) -- (14, 3) -- (13, 2) -- (13, 1)
        -- (16, 1) -- (16, 2.5) -- (15, 3.5) -- (15, 4) -- (16, 5)
      }
      \begin{scope}
        \clip (0, 0) rectangle (18, #1);
        \fill[blue]
          \PathA -- \PathB -- \PathC -- \PathD -- \PathE -- cycle
        ;
      \end{scope}
      \draw[very thick, line cap=round]
        \PathA
        \PathB
        \PathC
        \PathD
        \PathE
      ;
    \end{tikzpicture}%
    \newpage
  }
  \foreach \h in {0, .25, ..., 5} {
    \Drawing\h
  }
\end{document}

问题图片可在 上找到\Drawing{4}。动画版本:

动画片

无剪辑的版本:

相关内容