我已經獲取了xyz點格式的表示3D表面(即地震斷層面)的數據。我想創建這些表面的3D表示。我已經使用rgl和akima取得了一些成功,但是它不能真正處理可能折回自己或者在同一個x,y點具有多個z值的幾何。或者,使用geometry(來自qhull的convhulln函數),我可以創建在rgl中很好地顯示的凸包,但這些是封閉的表面,實際上,這些對象是開放的(不要完全包圍點集)。有沒有辦法創建這些曲面並渲染它們,最好是使用rgl?呈現3D表面
EDIT
爲了澄清,該點是點雲限定的表面。它們在整個表面上具有不同的覆蓋密度。但是,主要問題是表面是單側的,而不是閉合的,我不知道如何生成一個網格/曲面,而這個網格/曲面並不適用於更復雜的幾何體。
舉個例子...
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,它看起來很有前途,但我不知道如何去解決這個問題。
您可能對基於WebGL的lib感興趣,如[PhiloGL](http://philogb.github.com/)。這[demo](http://www.senchalabs.org/philogl/PhiloGL/examples/temperatureAnomalies/)很吸引人 – CapelliC
你當然可以在rgl(它提供你需要的所有圖形原語)中做到這一點,它只是更難(因爲不是預打包的)比上面給出的任何一個示例(單面,凸包)。如果您發佈示例數據,有人可能會給它一個鏡頭...... –
輸入是點雲嗎?你能提供一個示例圖片來了解密度的概念嗎? – sloriot