Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
想象一下,我有一个 3 列矩阵 x、y、z,其中 z 是 x 和 y 的高度/强度。
x = runif(1000) y = runif(1000) z = rnorm(1000)
如何使用rayshader packge从x,y,z获得3D表面?
虽然 rgl 可以做到,但我认为是否可以直接将光线着色器用于 x、y、z 的 3D 表面?
谢谢嘻嘻
您可以使用akima::interp值矩阵来近似曲面,并且也许rayshader::ray_shade可以处理它。代码将是
akima::interp
rayshader::ray_shade
m <- akima::interp(x, y, z, nx = 200, ny = 200) s <- rayshader::ray_shade(m$z)
这给出了一个阴影值矩阵;它什么也没画。要绘制一些东西,您需要将这些值转换为颜色并显示它们。例如,
plot(as.raster(s))
这给出了这个情节: