使用 TikZ 绘制隐函数

使用 TikZ 绘制隐函数

如何绘制隐函数,例如(x^2+y^2)^3-4x^2y^2使用 TikZ?

我知道gnuplot 支持他们,但它们是使用由函数构建的曲面并将结果与​​平面相交来绘制的z=0。如何直接从 TikZ 实现此工作流程?我知道您可以轻松地将显式函数传递给,gnuplot但如果没有必要,我不想将隐式函数拆分为其组成部分。

当然,可以在gnuplot程序中绘图并保存结果,但我很好奇是否有更直接的方法:)。

答案1

可能最简单的做法是使用 TikZ 的 gnuplot 前端。如果使用该raw gnuplot选项,您可以将更复杂的脚本传递给 gnuplot 以实现您想要的效果(而不仅仅是绘制一个简单的函数)。

我认为在 TeX 本身中几乎不可能做到这一点,毕竟 TeX 是一个文本处理系统,而不是计算机代数系统。可以使用pgfmath(TiKZ 中的数学引擎)生成表面点,并仅绘制足够接近 0。但是你如何连接这些点呢?

另一种方法是使用该函数编写微分方程,然后实施欧拉方法绘制曲线。但这可能不如你想要的那么漂亮——假设曲线是封闭的,你必须猜测和检查,以确保你绘制了足够的曲线来封闭曲线,并且不会重叠太多。

可能还存在 LuaTeX 选项,但我对此不了解。

这条特殊的曲线非常奇异,所以第一次尝试 TeX 的努力可能不会很成功。

答案2

使用 PSTricks(如果您不介意尝试一下):

在此处输入图片描述

\documentclass[pstricks]{standalone}
\usepackage{pst-func}
\begin{document}

\begin{pspicture}(-2,-2)(2,2)
  \psaxes{<->}(0,0)(-1.5,-1.5)(1.5,1.5)[$x$,0][$y$,90]
  \psplotImp[
    linecolor=red,
    stepFactor=0.1,
    algebraic,
    ](-1.5,-1.5)(1.5,1.5){(x^2+y^2)^3-4*x^2*y^2}
\end{pspicture}

\end{document}

答案3

这篇博客文章解释了如何使用raw gnuplot

http://pbelmans.wordpress.com/2010/11/11/howto-draw-algebraic-curves-using-pgftikz/

我没有尝试过,但它看起来很酷!

相关内容