通过 shiny + rgl 捕获坐标
Capture coordinates through shiny + rgl
是否可以使用 identify3d() 或类似的东西来捕获通过 renderRglwidget 渲染的 rgl 场景中的地标坐标?我在 shiny 中使用以下代码进行渲染:
#server
observeEvent(input$mspec3D, {
tt1 <- out2[[6]][out2[[6]][,3] == input$mspec3D, ][1]
tt1 <- as.numeric(tt1)
tt2 <- out2[[6]][out2[[6]][,3] == input$mspec3D, ][2]
tt2 <- as.numeric(tt2)
tt1 <- out2[[1]][[tt1]]
tt2 <- out2[[1]][[tt2]]
output$webgl3D <- renderRglwidget ({
try(rgl.close())
points3d(tt1, size=3, col="dimgray", box=FALSE)
points3d(tt2, size=3, col="dodgerblue", box=FALSE)
axes3d()
rglwidget()
})
})
#ui
rglwidgetOutput('webgl3D', width = "1200px", height = "400px")
是的,虽然它目前仅在开发版本中。您可以从 R-forge 或 Github 获取它,请参阅 . You need to use crosstalk。
请参阅 rgl
开发版本中 WebGL 插图中的讨论。
是否可以使用 identify3d() 或类似的东西来捕获通过 renderRglwidget 渲染的 rgl 场景中的地标坐标?我在 shiny 中使用以下代码进行渲染:
#server
observeEvent(input$mspec3D, {
tt1 <- out2[[6]][out2[[6]][,3] == input$mspec3D, ][1]
tt1 <- as.numeric(tt1)
tt2 <- out2[[6]][out2[[6]][,3] == input$mspec3D, ][2]
tt2 <- as.numeric(tt2)
tt1 <- out2[[1]][[tt1]]
tt2 <- out2[[1]][[tt2]]
output$webgl3D <- renderRglwidget ({
try(rgl.close())
points3d(tt1, size=3, col="dimgray", box=FALSE)
points3d(tt2, size=3, col="dodgerblue", box=FALSE)
axes3d()
rglwidget()
})
})
#ui
rglwidgetOutput('webgl3D', width = "1200px", height = "400px")
是的,虽然它目前仅在开发版本中。您可以从 R-forge 或 Github 获取它,请参阅
请参阅 rgl
开发版本中 WebGL 插图中的讨论。