我可以使用 fimplicit3 命令在 MATLAB 上绘制隐式曲面 (x^8)(y^2)(z^6) = 0,但我找不到类似的命令 Octave 。
在 MATLAB 和 Octave 兼容的印象下,我将相同的行复制粘贴到 Octave 中,它返回了一条错误消息: “错误:‘fimplicit3’在第 1 行第 1 列附近未定义”。
我如何在 Octave 上绘制它?
最佳答案
不是等效函数,但如果您只是想想象由这样的方程定义的对象在空间中看起来的样子,您可以简单地创建一个点网格,并获得等值面为 0。即使对于低分辨率网格,这应该也能正常工作。
例如,使用 matlab's fimplicit3 documentation page 中显示的相同示例,即等式: <子> ,在区间 [-5, 5] 中定义 x、y 和 z,我们有:
[x, y, z] = ndgrid(-5:1:5, -5:1:5, -5:1:5);
F = x.^2 + y.^2 - z.^2;
isosurface(F, 0);
您可以玩弄等值面对象的属性,或将其包装在 patch
对象中,引入 isonormals
,使用 plot3 在顶部绘制曲率线
等等。事实上,如果这就是 fimplicit3
在 matlab 中所做的事情,我不会感到惊讶。
PS:我使用了 matlab 的示例而不是您的示例,因为您的示例看起来有点微不足道:只要任何单个变量为零,它就微不足道为零。所以它基本上是三个零平面相交。不确定那是故意的还是你另有所指
关于matlab - 如何在 Octave 中绘制隐式曲面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45819246/