3

Rで非凸面をプロットする簡単な方法はありますか?

凸面に次のようなものを使用しましたが、正常に機能します。

xyz <- cbind(y,x,z)
tbr <- t(surf.tri(xyz, delaunayn(xyz)))
rgl.triangles(xyz[tbr,1], xyz[tbr,2], xyz[tbr,3])

ただし、非凸面の場合、凹面は塗りつぶされます。これは、拘束された Delaunay三角形分割や非凸オブジェクトのメッシュ生成をサポートしないQhulldelaunayn()ライブラリを使用しているため、関数の問題だと思います。

任意の提案をいただければ幸いです。

PS

ASCII ファイルとしてデータを持っていますが、3 列で 225 行の長さです。これを提供する最良の方法は何ですか?

入手可能なデータ: http://pastebin.com/R2p4Cf7d

プロットの上部は凹んでいる必要があります! persp3d()これは、サーフェスがどのように見えるかを使用して作成されたイメージです。これは、不規則なコロケーション ポイントを使用するのではなく、極座標の規則的なグリッド上でより多くのグリッド ポイントを使用して計算されています。

サーフェスのレンダリングは正しくなりますが、グリッド ポイントが増えます。

4

2 に答える 2

0

deldir::deldir()この場合よりも何か良いことがあると思いますgeometry::delaunayn()(新しい機能の記念としてrgl::plot3d.deldir())。(OPのデータを使用しました。)

library(rgl); library(deldir)

dxyz <- deldir(xyz[,1], xyz[,2], z=xyz[,3])

open3d()
plot3d(dxyz, col=cm.colors(256)[cut(xyz[,3], 256)], alpha=0.9)  # there isn't a bottom
wire3d(as.mesh3d(dxyz), col="black")

ここに画像の説明を入力

于 2016-08-29T09:26:42.970 に答える