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

时间:2017-08-22 13:38:03

标签: matlab plot octave

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

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

如何在Octave上绘制?

2 个答案:

答案 0 :(得分:3)

不是一个等效的函数,但是如果你只是想象一下这个等式所定义的对象在空间中看起来像什么,你可以简单地创建一个点网格,并获得等值面这应该很好,即使对于低分辨率网格也是如此。

例如,使用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在顶部绘制曲率线等等。事实上,如果fimplicit3在matlab的幕后做什么,我不会感到惊讶。

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

答案 1 :(得分:1)