R 和 rgl:使用 points3d 时范围内的奇怪行为

R and rgl: strange behaviour in range when using points3d

我一直在努力寻找使用 rgl 显示 3d 点的正确方法。我试过使用 points3dspheres3d 但直到现在都没有成功。看看我做了什么:

require(rgl)
x = runif(10, 0, 1)
y = runif(10, 0, 1)
z = runif(10, 0, 100)
test<-data.frame(x=x, y=y, z=z)

points3d(test$x,test$y,test$z,col='red',size=3)
box3d()

我读了这个 https://r-forge.r-project.org/tracker/?func=detail&group_id=234&aid=4933&atid=946 但也没有成功。

如果我将 xy 乘以 100,我可以得到我想要的结果:

test<-data.frame(x=x*100, y=y*100, z=z)

但是,考虑到 x,y,z 中的值可以采用不同的精度值,我需要创建一些东西 以将每个变量放在相同的范围内 (?)。

有没有更好的方法来避免使用 points3d 时出现缩放问题?我必须使用 points3dsphere3d(而不是直接使用 plot3d),因为我需要用表面覆盖点。

谢谢大家!

有一个 aspect3d 函数可用于指定相对缩放比例。

points3d(test$x,test$y,test$z,col='red',size=3)
box3d()

aspect3d(c(1,1,1))
axes3d()