【发布时间】:2015-10-12 20:49:23
【问题描述】:
我在 Matlab 中有以下内容(解决方案如 http://uk.mathworks.com/help/matlab/ref/viewmtx.html 中的示例):
subplot(211)
h = ezplot3('cos(t)', 'sin(t)', 'sin(5*t)', [-pi pi]);
data = get(h,{'XData','YData','Zdata'});
data = [cat(1,data{:})', ones(numel(data{1}),1)];
% Projection matrix on screen
[az,el] = view(); A = viewmtx(az,el);
data_transformed = A*data';
subplot(212)
plot(data_transformed(1,:), data_transformed(2,:))
该转换不适用于:
h = ezplot3('t', 'sin(t)', '20*cos(t)', [0 10*pi]);
如何获得第三个情节的屏幕投影?
此外,任何指向投影背后的数学的链接,带有示例也很好:)
【问题讨论】:
-
第四个图不就是第三个图的[x,z]平面的视图吗?
-
@Adriaan 不应该。第一个绘图应用相同的变换矩阵并获得屏幕投影(或者这是我认为的)。
-
我认为他们应该这样做。据我所知,您并没有改变绘制的函数,只是改变了它的观察角度。第二个图像再次只是第一个图像的 [x,z] 平面视图。您可以手动执行此操作(单击绘图上的“旋转”图标),但此代码显然会为您旋转绘图
-
嗯,我需要第三个情节的屏幕投影(二维)。
标签: matlab 3d 2d projection