matlab将输出图形的中心设置为[0 0 0]

计算科学 matlab 可视化 矩阵
2021-11-30 13:11:50

我有几组三维矩阵的数据,nx 3 与 x、y 和 z 坐标。我在图形窗口中查看了矩阵。

% read function;
OBJ1=read_obj('subject1.obj');
FV.vertices=OBJ1.vertices;
FV.faces=OBJ1.objects(2).data.vertices;
figure, patch(FV,'facecolor',[0 0 1]); camlight
grid on
axis equal

我想使用相同的函数读取其他数据集,但将每个图形的中心(不是原点中心)设置为 [xyz]=[0 0 0]。

请注意,当我使用上面的函数时,输出的中心并不总是在 [0 0 0]。

是否可以通过使用翻译功能来完成?

1个回答

如果你想要一组完美的方形轴,中心在(0,0,0),在将所有数据保留在屏幕上的同时,我会执行以下操作:

axis auto;
a = axis;
amax = max(abs(a));
axis([-amax,amax,-amax,amax,-amax,amax]);

如果您希望您的坐标区范围是整数,请更改max(abs(a))ceil(max(abs(a))).