MATLAB如何绘制三维隐函数图形
2个回答
展开全部
像Maple、Mathematica中就有类似implicitplot3()的三维隐函数绘图函数
自定义三维隐函数绘制函数
全世界人都知道Matlab那几千个库函数中,可恨的是,却偏偏不提供个三维隐函数的图像绘制的函数,真是郁闷死了
好,下面我们看一个三维隐函数绘制的应用,它灵活的应用了Matlab的isosurface()(等值面函数),绘制出来的图效果还比较好
function implot3(fun,rangxyz,ngrid,varargin)
%三维隐函数绘图
%
%输入参数说明
-fun 函数句柄,可以是匿名、inline和M函数
% -rangexy=[xmin xmax ymin ymax,zmin,zmax] 绘图范围
% -ngrid 绘图时计算的点数
%
%Example
%fun=@(x,y,z)(x+y+z).*(x.*y+x.*z+y.*z)-10*x.*y.*z;
%rangxyz=[1 10 1 10 1 10];ngrid=50;
%implot3(fun,rangxyz,ngrid)
%
%rewrite by dynamic
%all rights reserved by www.matlabsky.cn
x=linspace(rangexy(1),rangexy(2),ngrid);
y=linspace(rangexy(3),rangexy(4),ngrid);
z=linspace(rangexy(5),rangexy(6),ngrid);
[xx,yy,zz]=meshgrid(x,y,z);
fvector=vectorize(fun);% 将目标函数矢量化
f=f(fvector,xx,yy,zz,varargin{:});
p=patch(isosurface(xx,yy,zz,f,0),varargin{:});
set(p, 'FaceColor', 'red', 'EdgeColor', 'none');
daspect([1 1 1])
view(3)
camlight;
lighting phong
自定义三维隐函数绘制函数
全世界人都知道Matlab那几千个库函数中,可恨的是,却偏偏不提供个三维隐函数的图像绘制的函数,真是郁闷死了
好,下面我们看一个三维隐函数绘制的应用,它灵活的应用了Matlab的isosurface()(等值面函数),绘制出来的图效果还比较好
function implot3(fun,rangxyz,ngrid,varargin)
%三维隐函数绘图
%
%输入参数说明
-fun 函数句柄,可以是匿名、inline和M函数
% -rangexy=[xmin xmax ymin ymax,zmin,zmax] 绘图范围
% -ngrid 绘图时计算的点数
%
%Example
%fun=@(x,y,z)(x+y+z).*(x.*y+x.*z+y.*z)-10*x.*y.*z;
%rangxyz=[1 10 1 10 1 10];ngrid=50;
%implot3(fun,rangxyz,ngrid)
%
%rewrite by dynamic
%all rights reserved by www.matlabsky.cn
x=linspace(rangexy(1),rangexy(2),ngrid);
y=linspace(rangexy(3),rangexy(4),ngrid);
z=linspace(rangexy(5),rangexy(6),ngrid);
[xx,yy,zz]=meshgrid(x,y,z);
fvector=vectorize(fun);% 将目标函数矢量化
f=f(fvector,xx,yy,zz,varargin{:});
p=patch(isosurface(xx,yy,zz,f,0),varargin{:});
set(p, 'FaceColor', 'red', 'EdgeColor', 'none');
daspect([1 1 1])
view(3)
camlight;
lighting phong
上海钇视科技
2024-11-08 广告
2024-11-08 广告
三维模型嵌入是我们上海钇视科技有限公司的一项核心技术。我们利用先进的算法和工具,将高精度的三维模型无缝嵌入到各种应用场景中,如虚拟展示、产品设计、教育培训等。通过精细的纹理映射和光影处理,我们的三维模型呈现出逼真的视觉效果,为用户带来沉浸式...
点击进入详情页
本回答由上海钇视科技提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询