如何在 Matlab 中计算 3D 网格的投影

发布于 2024-11-10 16:43:48 字数 158 浏览 1 评论 0原文

我正在尝试使用 matlab 从不同视图计算 3d 网格的 2d 投影。 我现在使用的解决方案是绘制 3D 网格、旋转它并制作屏幕截图。

我想知道是否有任何 matlab 内部函数或任何其他解决方案允许我在给定一组顶点和三角形的情况下计算投影而无需绘制 3D 网格

谢谢

I'm trying to compute 2d projections of a 3d mesh from different views using matlab.
The solution I m using now, is to plot the 3d mesh, rotate it, and make a screenshot.

I would like to know if there is any matlab internal functions or any other solution that allow me, given a set of vertices and triangles, to compute the projections without having to plot the 3D mesh

Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

孤寂小茶 2024-11-17 16:43:49

您可以使用 view 命令来旋转轴并改变视点。方位角和仰角以度为单位给出(有关更多信息,请参阅文档)。这是一个小例子:

ha=axes;
[x,y,z]=peaks;
surf(x,y,z);
xlabel('x');ylabel('y');zlabel('z')

%#projection on the X-Z plane
view(ha,[0,0])

%#projection on the Y-Z plane
view(ha,[90,0])

%#projection on the X-Y plane
view(ha,[0,90])

它看起来像这样:

在此处输入图像描述

不同 2D 平面

X-Z

上的投影在此处输入图像描述

YZ

输入图像描述此处

XY

此处输入图像描述

You can use the view command to rotate the axes and change the viewpoint. The azimuth and elevation are given in degrees (ref. documentation for more info). Here's a small example:

ha=axes;
[x,y,z]=peaks;
surf(x,y,z);
xlabel('x');ylabel('y');zlabel('z')

%#projection on the X-Z plane
view(ha,[0,0])

%#projection on the Y-Z plane
view(ha,[90,0])

%#projection on the X-Y plane
view(ha,[0,90])

This is what it looks like:

enter image description here

Projections on different 2D planes

X-Z

enter image description here

Y-Z

enter image description here

X-Y

enter image description here

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文