【发布时间】:2020-02-20 21:11:41
【问题描述】:
我在rgl 中绘制了一个网格来可视化上面的数据。即,网格具有源自将颜色图应用于其数据的颜色(每个顶点处的一个标量值)。下面是一个包含一个面的网格的最小示例:
library(rgl);
library(squash);
# create a mesh
vertices <- c(
-1.0, -1.0, 0, 1.0,
1.0, -1.0, 0, 1.0,
1.0, 1.0, 0, 1.0,
-1.0, 1.0, 0, 1.0
)
indices <- c( 1, 2, 3, 4 )
# add a data value for each vertex
morph_data = rnorm(length(indices), mean = 3, sd = 1)
# create colors from values by applying a colormap
col = squash::cmap(morph_data, map = squash::makecmap(morph_data, colFn = squash::jet));
# plot
open3d()
shade3d( qmesh3d(vertices, indices), col=col )
如何在 rgl 中为该图添加颜色条?
this example picture from octave.sourceforge.io 的右侧显示了我对 colorbar 的确切含义的示例。
【问题讨论】:
-
请注意 - rgl 对象上的颜色不仅会随着网格上的值而变化,还会随着它与照明/阴影的交互方式而变化。这些又随着对象旋转而变化。因此,网格上的颜色不会与颜色条上的颜色完全对应。为此,您将需要一个非常独特的调色板并愿意将颜色条视为粗略的近似值
-
@dww 感谢您的信息。我知道这一点,这对我来说绝对没问题。我使用的网格有数千个不同的(颜色)值和超过 100k 个顶点,所以这不是要读取颜色栏中某个顶点的确切颜色。这是关于查看哪些区域的值更高或更低。