r - 获取RGL View 参数

标签 r 3d rgl

尽管可以在拍摄3d图表/对象的快照时使用view3d(theta, phi,...)函数将视点旋转到合适的位置,但是很难猜测哪个theta和phi值是好的。

显示该图后,我们可以对其进行交互旋转。但是无论如何,在手动旋转后是否可以找出图的theta和phi参数,以便我们可以以编程方式使用它(即在创建许多应该具有相同视点的图时)?

最佳答案

我一直在尝试自己解决这个问题,我认为我有维持用户修改后的交互式情节视角的答案。 view3d仅影响已经打开的窗口中的透 View ,关键是在实际生成绘图之前,使用open3d设置窗口和透 View 。

换句话说,我们实际上并不需要直接使用phi和theta Angular 信息。一旦生成了交互式图并获得了所需的透 View (您可能希望调整窗口的大小,否则图像抓取会变得太小),类似以下内容的内容将提取所需的信息:

zoom<-par3d()$zoom
userMatrix<-par3d()$userMatrix
windowRect<-par3d()$windowRect

然后,下面的操作将以所需的大小和透 View (和缩放)打开一个窗口,生成图,然后获取图像。
open3d(zoom = zoom, userMatrix = userMatrix, windowRect=windowRect)
perps3d(x=x,y=y,z=z) # plus whatever arguments you need, but ignoring all perspective arguments
rgl.snapshot( filename, fmt="png", top=TRUE)

这是基本思想,可用于自动生成相同透 View 的图形。您还可以按照自己认为合适的方式来处理来自par3d的scale或fov参数,并使用相同的思想来提取和使用信息。我认为这些是以上Ali所需要的。

自动生成多个绘图时调用persp3d有点不雅致,因为该函数实际上是为交互式绘图而设计的。我怀疑您可以使用par3d中的信息userMatrix,zoom,fov,scale等以及一些数学方法(例如Ali的方法)来确定phi,theta,r和d,并将其直接放入persp中-而不是每个处理persp3d情节,但我还没有测试过。

关于r - 获取RGL View 参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22257196/

相关文章:

r - 在 Ubuntu 和 Mac 上安装 rgl : X11 not found

r - rgl 曲面图的颜色随高度 (z) 变化

r - 如何使用显示 CLD 字母的箱线图显示 Tukey 测试的结果

r - 在 dplyr 中按行计算和正常计算之间切换

python - 我是否缺少在 Ubuntu 9.04 上使用 Python2.6 绑定(bind)构建/安装 VTK-5.4 的步骤?

java - 从哪里获得 com.sun.j3d 类

r - as.POSIXlt 忽略 tz 参数

javascript - 将动态变化的 R htmlwidget 嵌入到网页中

javascript - Three.js - 使用 CubeTextureLoader 在立方体的每个面上创建不同的图像

r - 深色背景的 rgl 输出中的文本显示不佳