RGL R中闪亮不旋转上点击鼠标左键(RGL in R Shiny not rotating on

2019-09-30 16:02发布

只是短短的一瞬前,我就如何嵌入光亮的RGL问题被Mike回答,但我们似乎已经跌进另一个问题,

这是代码例如:

library(rgl)
library(car)
library(shiny)

cars$time <- cars$dist/cars$speed

ui <- fluidPage(
  hr("how do we get the plot inside this app window rather than in a popup?"),
  rglwidgetOutput("plot",  width = 800, height = 600)
)

server <- (function(input, output) {

  output$plot <- renderRglwidget ({
    rgl.open(useNULL=F)
    scatter3d(x=cars$speed, y=cars$dist, z=cars$time, surface=FALSE, ellipsoid = TRUE)
    rglwidget()

    })

  })   
shinyApp(ui = ui, server = server)

更改rgl.open(useNULL=F)rgl.open(useNULL=T)将停止显示,在弹出的,但在这两种情况下,在闪亮的页面的RGL确实变焦,但不旋转。

看来,单击鼠标右键寄存器和作品,同时点击鼠标左键无法识别....

> sessionInfo()
R version 3.3.3 (2017-03-06)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows >= 8 x64 (build 9200)

locale:
[1] LC_COLLATE=English_United States.1252  LC_CTYPE=English_United States.1252    LC_MONETARY=English_United States.1252
[4] LC_NUMERIC=C                           LC_TIME=English_United States.1252    

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

other attached packages:
[1] shiny_1.0.0 car_2.1-4   rgl_0.97.0 

loaded via a namespace (and not attached):
 [1] Rcpp_0.12.9        knitr_1.15.1       magrittr_1.5       splines_3.3.3      MASS_7.3-45        xtable_1.8-2       lattice_0.20-34   
 [8] R6_2.2.0           minqa_1.2.4        tools_3.3.3        nnet_7.3-12        pbkrtest_0.4-7     parallel_3.3.3     grid_3.3.3        
[15] nlme_3.1-131       mgcv_1.8-17        quantreg_5.33      MatrixModels_0.4-1 htmltools_0.3.5    yaml_2.1.14        lme4_1.1-13       
[22] digest_0.6.11      Matrix_1.2-8       nloptr_1.0.4       htmlwidgets_0.8    mime_0.5           SparseM_1.77       jsonlite_1.2      
[29] httpuv_1.3.3    

Answer 1:

你的场景是利用mouseMode“极”(大概是因为scatter3d是设置它)。 这种模式是不是目前在rglwidget代码实现。

一种解决方法是设置mouseMode调用rglwidget()之前为“轨迹球”,例如,在输出$剧情把这个:

open3d(useNULL=TRUE)
scatter3d(x=cars$speed, y=cars$dist, z=cars$time, surface=FALSE, ellipsoid = TRUE)
par3d(mouseMode = "trackball")
rglwidget()

注意我的编辑:我已经简化上面的代码。 要设置鼠标左键,只需指定mouseMode的一个组成部分。

另一个编辑:RGL的最新版本是0.98.8,可在R-锻造,也许最终别处(见?我如何安装最新版本的RGL的 ),现在有“极”鼠标处理的支持。 这不等同于R中的行为,但已经很接近了。



文章来源: RGL in R Shiny not rotating on left mouse button click