我想重现所示的周期表,并包含更多正确的区域。
http://www.meta-synthesis.com/webbook/35_pt/relative_abundance.jpg
我很感激任何关于如何做到这一点的想法。如何在 TikZ 中计算一个盒子的面积?我可以让控制点自动调整到给定区域吗?无论是通过迭代还是直接计算。我不知道控制点背后的数学原理!?
代码示例:
\documentclass{standalone}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\draw (0,0) rectangle (3,2);
\draw (0,1) .. controls (0.4,0.4) and (1.5,1.5) .. (3,1);
\draw (1,0) .. controls (0.4,0.4) and (1.5,1.5) .. (1,2);
\draw (2,0) .. controls (1.4,1.4) and (1.5,1.5) .. (2,2);
\end{tikzpicture}
\end{document}
输出:
答案1
有什么原因吗有在 TikZ 中?对于可能一次性的大型计算,最好在其他环境中进行所有计算,并使用它来生成 TikZ 图片。例如编程/脚本语言或 CAS。Metapost 有路径/点,并且可以轻松访问贝塞尔点,所以这可能是可行的。是的,我知道这违背了“{tikz-pgf}{计算}”的精神。
无论如何,您需要的组件是贝塞尔边界区域面积的公式。可以使用标准多元微积分技巧(特别是格林定理 - Kreyszig 第 10 章,如果有的话)找到它。这里有一些公式,有人已经做到了这一点:
http://objectmix.com/graphics/133553-area-closed-bezier-curve.html
我假设这就是你不理解控制点背后的数学原理的意思。更多基本信息如下:http://en.wikipedia.org/wiki/Bezier_curve
对于其余的问题,我会使用迭代方法 - 将点移向改善拟合的方向。可能需要花很多功夫才能找到自由和限制的正确组合。如果您在 Metapost 中执行此操作,则一个优点是,如果您只给它一个端点序列,它就能合理地计算出不错的控制点。
抱歉,这不是一个完美解决您问题的答案——实际上让它发挥作用会相当复杂。