对齐 MATLAB 三角测量中的人脸数据

发布于 2025-01-04 12:32:15 字数 1674 浏览 1 评论 0原文

我有一个函数 f(x,y),它具有我想绘制的某些对称性。下面是一个示例:

view(2)view(3)

该图可以通过以下方式生成:

[x,y,z] =
     0         0    0.1415
0.1999    0.1999    0.1165
0.2760         0    0.1268
0.3694    0.3694    0.0983
0.4830         0    0.1142
0.5090    0.5090    0.0903
0.5550    0.1871    0.0881
0.6189    0.3558    0.0715
0.6197    0.6197    0.0907
0.6399         0    0.1056
0.7071    0.7071    0.1415
0.7169    0.4835    0.0869
0.7215    0.1200    0.0859
0.7304    0.2392    0.0680
0.7643         0    0.1005
0.7926    0.3574    0.0856
0.8090    0.5878    0.1393
0.8581    0.1122    0.0821
0.8634    0.2343    0.0878
0.8794         0    0.0986
0.8910    0.4540    0.1332
0.9511    0.3090    0.1253
0.9877    0.1564    0.1191
1.0000         0    0.1169

t = 
 6     4     8
12     6     8
 8     4     7
 4     2     7
 8     7    14
14     7    13
 3     2     1
 5     7     3
 3     7     2
17    12    21
 6    12     9
 9    17    11
12    17     9
10    15    13
10     7     5
13     7    10
21    12    16
16    12     8
 8    14    16
18    14    13
15    20    18
13    15    18
24    23    18
18    20    24
21    16    22
23    22    19
19    18    23
14    18    19
19    16    14
19    22    16

trisurf(t,x,y,z)

所以我知道该函数具有关于 y=x 的反射对称性,然后生成的函数将在所有象限中重复。以下是执行此操作的代码:

allx = [x; x;-x;-x;y; y;-y;-y];
ally = [y;-y; y;-y;x;-x; x;-x];
allz = [z; z; z; z;z; z; z; z];

这些是我要绘制的曲面的新顶点。现在我如何正确生成这个新曲面的面?

当我使用更精细的网格并添加一些漂亮的灯光时,它应该看起来像这样: 在此处输入图像描述

I have a function f(x,y) which has certain symmetries that I would like to plot. Here is an example:

view(2)view(3)

This plot can be generated with:

[x,y,z] =
     0         0    0.1415
0.1999    0.1999    0.1165
0.2760         0    0.1268
0.3694    0.3694    0.0983
0.4830         0    0.1142
0.5090    0.5090    0.0903
0.5550    0.1871    0.0881
0.6189    0.3558    0.0715
0.6197    0.6197    0.0907
0.6399         0    0.1056
0.7071    0.7071    0.1415
0.7169    0.4835    0.0869
0.7215    0.1200    0.0859
0.7304    0.2392    0.0680
0.7643         0    0.1005
0.7926    0.3574    0.0856
0.8090    0.5878    0.1393
0.8581    0.1122    0.0821
0.8634    0.2343    0.0878
0.8794         0    0.0986
0.8910    0.4540    0.1332
0.9511    0.3090    0.1253
0.9877    0.1564    0.1191
1.0000         0    0.1169

t = 
 6     4     8
12     6     8
 8     4     7
 4     2     7
 8     7    14
14     7    13
 3     2     1
 5     7     3
 3     7     2
17    12    21
 6    12     9
 9    17    11
12    17     9
10    15    13
10     7     5
13     7    10
21    12    16
16    12     8
 8    14    16
18    14    13
15    20    18
13    15    18
24    23    18
18    20    24
21    16    22
23    22    19
19    18    23
14    18    19
19    16    14
19    22    16

trisurf(t,x,y,z)

So I know that function has a reflection symmetry about y=x and then the resulting function is to be repeated in all the quadrants. Here is the code to do this:

allx = [x; x;-x;-x;y; y;-y;-y];
ally = [y;-y; y;-y;x;-x; x;-x];
allz = [z; z; z; z;z; z; z; z];

These are the new vertices for the surface I want to plot. Now how do I properly generate the faces for this new surface?

When I use a finer mesh and add some pretty lights it should look something like this:
enter image description here

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

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

发布评论

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

评论(1

反话 2025-01-11 12:32:15

推测:

所以你的问题是如何设置 trisurf 的第一个参数,即如何在代码中定义扩展的 t 。根据docs,这是由以下定义的顶点的索引其余的参数。我没有在这台机器上安装 MATLAB,但是如果安装了会发生什么:

allx = [x; x;-x;-x];
ally = [y;-y; y;-y];
allz = [z; z; z; z];
s = size(x,1);
t = [t; t + s; t + 2*s; t + 3*s]

只是想一下这是否有意义以及它是否/如何扩展到其他象限。

Speculative:

So your question is about how to set-up the first argument of trisurf, i.e. how to define the extended t in your code. According to the docs this is the index into the vertices defined by the remaining arguments. I don't have MATLAB installed on this machine, but what happens if you do:

allx = [x; x;-x;-x];
ally = [y;-y; y;-y];
allz = [z; z; z; z];
s = size(x,1);
t = [t; t + s; t + 2*s; t + 3*s]

Just trying to think if this makes sense and if/how it extends into the other quadrants.

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