【发布时间】:2016-01-13 18:05:24
【问题描述】:
我有一些我收集的数据。
它由顶点和三角形组成,我使用网格划分软件制作。
我可以将 R 与
一起使用trimesh(三角形,顶点)
制作漂亮的网格图。
但不知道如何使用 RGL 制作我可以查看的交互式绘图,并且我不知道如何根据数据框中的不同值为网格的面着色。
这里是数据框中的顶点。 x, y, z 是节点/点的坐标 (nn)
'data.frame': 23796 obs. of 7 variables:
$ nn : int 0 1 2 3 4 5 6 7 8 9 ...
$ x : num 39.5 70.8 49 83.5 -16 ...
$ y : num 28.2 -2.97 -25.67 -9.1 -39.75 ...
$ z: num 160 158 109 121 188 ...
$ uni: num 3.87 6.64 5.02 4.48 1.91 ...
$ bi : num 0.749 0.784 1.045 0.935 0.733 ...
nn x y z uni bi
0 39.527 28.202 160.219 3.86942 0.74871
1 70.804 -2.966 157.578 6.64361 0.78373
2 48.982 -25.674 109.022 5.02491 1.0451
3 83.514 -9.096 120.988 4.47977 0.9348
4 -16.04 -39.749 188.467 1.90873 0.73286
5 74.526 -3.096 174.347 8.4263 0.70594
6 54.93 -56.347 151.496 7.53334 2.17128
7 56.936 -20.131 186.177 7.16118 1.44875
8 -14.627 -47.1 162.185 2.13939 0.70887
9 38.207 -59.201 147.993 5.83457 4.32971
10 50.645 -32.04 110.418 5.3741 1.14543
顶点的三角形是
'data.frame': 47602 obs. of 7 variables:
$ X : int 3435 3161 18424 13600 1564 21598 21283 1171 51 9331 ...
$ Y : int 19658 17204 17467 19721 10099 19018 11341 2723 15729 5851 ...
$ Z : int 2764 9466 16955 2669 10091 21205 18399 20833 15865 9106 ...
X Y Z
3435 19658 2764
3161 17204 9466
18424 17467 16955
13600 19721 2669
1564 10099 10091
21598 19018 21205
21283 11341 18399
1171 2723 20833
51 15729 15865
9331 5851 9106
310 3513 9121
5651 11928 15468
8594 2295 6852
22725 22636 11114
我需要像在 trimesh 中一样将其制成网格,但是使用 RGL,我需要根据 uni 的比例为网格的面着色,其中 1.5 是绿色
【问题讨论】:
-
当我尝试 shade3d( tmesh3d(vert,face)) 我得到错误 x$vb[1, x$it] : subscript out of bounds
-
与同质性有关吗?即我有非同质数据,因为顶点数据框小于索引?如果是这样,我该如何解决?
-
我不明白你的三角形数据框的格式。它应该是一个矩阵,每行包含顶点矩阵的列的索引,对应于哪个顶点在哪个三角形中。也许如果你发布一个人们可以运行的完整示例,有人会告诉你如何去做。
-
如何发布整个数据框。节点是 20000+ 行和顶点 40000+。顶点实际上是每个节点的数据框
-
不要发布所有数据。想出一个只需要网格中几个三角形的简单示例,然后发布。
dput()适合发布结构化数据。