matlab绘制图像方面非常强大,本次记录我在使用过程中的一些总结。
F = 1 ∣ X 2 + Y 2 + Z 2 + A 2 ∣ F=\frac{1}{|X^2+Y^2+Z^2+A^2|} F=∣X2+Y2+Z2+A2∣1
代码如下(示例):
%% 设置图像渲染方法
% set(gcf, 'Renderer', 'Painter')
% set(gcf, 'Renderer', 'Zbuffer')
% 选择采用OpenGL渲染图像
set(gcf, 'Renderer', 'OpenGL')
代码如下(示例):
%% 生成坐标轴
x15 = -1:0.1:1;
% 第一维的独立变量
x4 = -1:0.1:1;
% 第二维的独立变量
x7 = -1:0.1:1;
% 第三维的独立变量
maxcolor = 4;
% 定义最大值
mincolor = 0;
% 定义最小值
% 调用hsv配色方案
colormap hsv
设置动画
% 动画
for x5 = -1:0.02:1 % 第四维的独立变量
% 描述第五维的方程
data = 1/abs(X.^2 + Y.^2 + Z.^2 + x5.^2);
% data = 2.492+0.009*X+0.034*Y-0.235*Z-0.003*x5;
figure(1);
% 绘制切片
% slice(x,y,z,v,sx,sy,sz),
% 其中x,y,z为三维数据,
% v是关于x,y,z的函数,
% sx,sy,sz是切片的位置
slice(X, Y, Z, data, 0, 0, 0);
% 对进行色彩的插值处理,使色彩平滑过渡
shading interp
% 设置当前figure中字体,字号
set(gca, 'FontName', 'Times New Roman', 'FontSize', 14)
% 标注x,y,z轴
xlabel('X');ylabel('Y');zlabel('Z');
% 给图像加标题
title(['F=1/abs(X^2 + Y^2 + Z^2 + x5^2),for x5 = ' num2str(x5)])
% 设置当前对象的透明度
alpha(0.75)
% 限制彩色条的取值
caxis([mincolor maxcolor])
% 显示彩色条
colorbar
% 刷新屏幕
drawnow
%% 保存为GIF动画
% 获取当前画面
F = getframe(gcf);
%转成gif图片,只能用256色
im = frame2im(F);
[I,map] = rgb2ind(im,256);
%写入 GIF89a 格式文件
if x5 == -1
imwrite(I,map,'5D.gif','GIF', 'Loopcount',inf,'DelayTime',0.1);
else
imwrite(I,map,'5D.gif','GIF','WriteMode','append','DelayTime',0.1);
end
end
上述代码为一个整体,记得全部复制后保存在同一个文件内,可根据自己需要修改。