3

次のような一連のデータがあります。

    x   y   z
1   1   2   1
2   3   5   7
3   -3  2   4
4   -2  1   1

したがって、各行は 3 次元空間でドット座標を記録します。設定できる半径で、15 番を半透明の球体として、1 つを除いてすべての点を点としてプロットしたいと思います。次に、データ内のどの点が球に含まれているかをプロットから確認できます。私は現在 RGL パッケージを使用しており、次のことを行いました。

> open3d()
> plot3d(readin,col=3,type="p")
> plot3d(readin[15,],col=2,add=T,type="s",radius=0.1)

したがって、最初のプロット コマンドはセット全体を散布図としてプロットし、2 番目のプロット コマンドはデータの 15 行目を選択して球体としてプロットし、前のキャンバスに追加しました。球に含まれるドットを確認できるように、球を半透明にすることができるかどうか疑問に思っています。つまり、それらのドットは、選択したドットに非常に近いことを意味します。

RGL でこれを行う方法はありますか? または、このタスクを完了する別の方法を教えてください。

ありがとう!

4

3 に答える 3

8

あなたが探しているのは引数だと思いますalpha

df <- data.frame(x=c(1,3,-3,-2), y=c(2,5,2,1),z=c(1,7,4,1))

library(rgl)
open3d()
plot3d(df,col=3,type="p", radius=0.5)
plot3d(df,col=rgb(1,0,0.3),alpha=0.5, add=T,type="s",radius=1)

ここに画像の説明を入力

于 2013-04-22T20:51:09.483 に答える
1

alpha 引数を spheres3d に使用して、透明な球体をプロットできます。プロットを回転させてボックス ラインを球体の後ろに移動し、球体が透明であることを証明できます。

 spheres3d(dat[4,],col=rgb(1,0,0), alpha=0.9)  # transparent red.

(アルファ引数を使用して実行しようとしましたrgbが、失敗しました。)

于 2013-04-22T20:51:05.500 に答える
0

ポイント15の特定の半径内にあるポイントを見つけたいだけの場合は、各ポイントからポイント15までのユークリッド距離を計算し、それらの距離のどれが半径よりも小さいかを確認できます。プロットは必要ありません (ただし、これらのポイントを別の色でプロットして強調表示することもできます。このdist関数は、距離を計算する 1 つの方法であり、自分で簡単にプログラムすることもできます。

于 2013-04-22T20:54:08.287 に答える