首页 文章

如何在Octave中绘制隐式曲面?

提问于
浏览
2

我可以使用fimplicit3命令在MATLAB上绘制隐式曲面(x ^ 8)(y ^ 2)(z ^ 6)= 0,但我在Octave中找不到类似的命令 .

在MATLAB和Octave兼容的印象下,我将相同的行复制粘贴到Octave中,并返回错误消息:“错误:'fimplicit3'未定义在第1行第1列附近” .

我如何在Octave上绘制它?

2 回答

  • 3

    不是一个等价的函数,但如果你只是想象一下这个方程定义的对象在空间中是什么样的,你可以简单地创建一个点网格,并获得等值面为0.这应该很好,即使对于低分辨率网格 .

    例如,使用matlab's fimplicit3 documentation page中显示的相同示例,即等式:,在x,y和z的区间[-5,5]中定义,我们有:

    [x, y, z] = ndgrid(-5:1:5, -5:1:5, -5:1:5);
    F = x.^2 + y.^2 - z.^2;
    isosurface(F, 0);
    

    你可以使用isosurface对象的属性,或者将它包装在 patch 对象中,引入 isonormals ,使用 plot3 等在顶部绘制曲率线等 . 实际上我不会在matlab的引擎盖下做什么 fimplicit3 .


    PS:我使用的是matlab的例子,而不是你的例子,因为你的例子似乎有点微不足道:只要任何一个变量为零,它都是零 . 所以它基本上是相互交叉的三个零平面 . 不确定这是故意还是你的意思

  • 1

    您可以使用 meshXsurfX 函数之一绘制曲面

    https://www.gnu.org/software/octave/doc/interpreter/Three_002dDimensional-Plots.html

相关问题