繁体   English   中英

使用R中的rgl绘制半透明球体

[英]Draw a translucent sphere using rgl in R

我有一组数据,看起来像:

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

所以每一行都在三维空间中记录点坐标。 我想将所有的点都绘制成除了一个点之外的点,比如15号作为半透明球体,我可以设置半径。 然后我可以从图中看到数据中哪些点包含在球体中。 我现在正在使用RGL包并执行以下操作:

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

因此,第一个绘图命令将整个集合绘制为散点图,第二个绘图命令选择数据的第15行并将其绘制为球体并将其添加到上一个画布。 我只是想知道我是否可以使球体半透明,以便我可以看到球体中包含哪些点,这意味着这些点非常接近我选择的点。

RGL有没有办法做到这一点你还可以提供另外一种方法来完成这项任务吗?

谢谢!

我认为你要找的是争论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)

在此输入图像描述

您可以使用spheres3d的alpha参数绘制透明球体。 您可以旋转绘图以移动球体后面的框线以证明它是透明的。

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

(我尝试用rgb的alpha参数来做它,但它失败了。)

如果您只是想知道哪个点位于点15的某个半径范围内,那么您可以计算从每个点到点15的欧几里德距离,并查看哪些距离小于半径。 不需要绘图(尽管您可以将这些点绘制为不同颜色以突出显示它们dist功能是计算距离的一种方式,或者您自己编程很简单。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM