gpt4 book ai didi

渲染 3D 表面

转载 作者:行者123 更新时间:2023-12-02 02:15:28 28 4
gpt4 key购买 nike

我有以 xyz 点格式表示 3D 表面(即地震断层平面)的数据。我想创建这些表面的 3D 表示。我使用 rgl 和 akima 取得了一些成功,但是它无法真正处理可能会自行折叠或在同一 x,y 点具有多个 z 值的几何体。或者,使用几何(来自 qhull 的 convhulln 函数)我可以创建在 rgl 中很好地显示的凸包,但这些是封闭的表面,实际上对象是开放的(不完全包围点集)。有没有办法创建这些表面并渲染它们,最好是在 rgl 中?

编辑

澄清一下,这些点位于定义表面的点云中。它们在整个表面具有不同的覆盖密度。然而,主要问题是表面是单边的,不是封闭的,我不知道如何为更复杂的几何体生成一个不封闭的网格/表面。

举个例子...

require(rgl)
require(akima)
faultdata<-cbind(c(1,1,1,2,2,2),c(1,1,1,2,2,2),c(10,20,-10,10,20,-10))
x <- faultdata[,1]
y <- faultdata[,2]
z <- faultdata[,3]
s <- interp(x,z,y,duplicate="strip")
surface3d(s$x,s$y,s$z,col=a,add=T)

这通常会创建我想要的。但是,对于更复杂的平面,这不一定有效。例如数据在哪里:

faultdata<-cbind(c(2,2,2,2,2,2),c(1,1,1,2,2,2),c(10,20,-10,10,20,-10))

我不能使用这种方法,因为这些点都是垂直共面的。由于同样的问题,我也不能使用 convhulln,一般来说我不想要一个封闭的船体,我想要一个表面。我查看了 alphashape3d,它看起来很有前途,但我不确定如何使用它来解决这个问题。

最佳答案

您如何确定点如何连接在一起作为一个表面?按距离?这可能是一种方式,alphashape3d 包可能会有用。否则,如果您确切知道它们是如何连接的,那么您可以直接使用 rgl 结构将其可视化。

关于渲染 3D 表面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10906392/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com