改变每个图形在Z轴上的位置
1次检视(最近30天)
显示旧的注释
是否可以改变每个图形在Z轴上的位置?在图中:第一个图形放在Z=1的平面上,第二个图形放在Z=2的平面上,以此类推。也就是说,施加了一个步骤=1。我想定义在哪一步放置图像。
下面是我使用的代码:
clc;%清空命令窗口。
流('开始运行%s。m…\ n”, mfilename);
关闭所有;%关闭所有图形(imtool除外)。
clearvars;
工作空间;确保显示工作区面板。
格式短g;
格式紧凑的;
myFolder = pwd;%的C: \ pic2points \ \ Alberto \ \用户下载图片”;
如果~ isfolder (myFolder)
errorMessage = sprintf(“错误:以下文件夹不存在:\n%s”, myFolder);
uiwait (warndlg (errorMessage));
返回;
结束
fileppattern = fullfile(myFolder,‘* . png”);
imageFiles = dir(filpattern);
hFig3 = figure(“名字”,“3 d图”,“NumberTitle”,“关闭”);
为k = 1:长度(imageFiles)
baseFileName = imageFiles(k).name;
fullFileName = fullfile(myFolder, baseFileName);
流('现在读取%s\n', fullFileName);
imageArray = imread(fullFileName);
drawnow;
%呼叫pic2点。这将打开一个新的数字。
CoordinateMatrix = pic2points(imageArray);
%切换到三维绘图的图形:
图(hFig3);
% scatter(CoordinateMatrix(:, 1), CoordinateMatrix(:, 2), '.');
z = k * ones(size(CoordinateMatrix, 1), 1);
plot3(CoordinateMatrix(:, 1), CoordinateMatrix(:, 2), z,“。”);
持有在
drawnow;
结束
网格在;
hFig3。WindowState =“最大化”;
流('已完成运行%s.m.\n', mfilename);
0评论
接受的答案
沃斯
2022年10月26日
clc;%清空命令窗口。
流('开始运行%s。m…\ n”, mfilename);
关闭所有;%关闭所有图形(imtool除外)。
clearvars;
工作空间;确保显示工作区面板。
格式短g;
格式紧凑的;
myFolder = pwd;%的C: \ pic2points \ \ Alberto \ \用户下载图片”;
如果~ isfolder (myFolder)
errorMessage = sprintf(“错误:以下文件夹不存在:\n%s”, myFolder);
uiwait (warndlg (errorMessage));
返回;
结束
fileppattern = fullfile(myFolder,‘* . png”);
imageFiles = dir(filpattern);
hFig3 = figure(“名字”,“3 d图”,“NumberTitle”,“关闭”);
% z坐标使用:
z = 1+100*(0:numel(imageFiles)-1);%[1 101 201…]
为k = 1:长度(imageFiles)
baseFileName = imageFiles(k).name;
fullFileName = fullfile(myFolder, baseFileName);
流('现在读取%s\n', fullFileName);
imageArray = imread(fullFileName);
drawnow;
%呼叫pic2点。这将打开一个新的数字。
CoordinateMatrix = pic2points(imageArray);
%切换到三维绘图的图形:
图(hFig3);
% scatter(CoordinateMatrix(:, 1), CoordinateMatrix(:, 2), '.');
current_z = z(k) * ones(size(CoordinateMatrix, 1), 1);
plot3(CoordinateMatrix(:, 1), CoordinateMatrix(:, 2), current_z,“。”);
持有在
drawnow;
结束
网格在;
hFig3。WindowState =“最大化”;
流('已完成运行%s.m.\n', mfilename);