如何绘制隐函数,例如(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/
我没有尝试过,但它看起来很酷!