使用 play3d 在 R Markdown html 中动画化 3d 对象

Animating 3d object in R Markdown html with play3d

是否可以将代码插入到 R markdown 块中以允许 play3d 在生成的 html 中为 3d 图制作动画?这是一个降价示例:

```{r setup, include=FALSE}
library(knitr)
library(rgl)
knitr::opts_chunk$set(echo = TRUE)
```    
```{r, webgl = TRUE}
A <- merge(1:100,1:100,by=NULL)
A$z <- 0.5*A$x - 0.5*A$y
plot3d(x=A$x,y=A$y,z=A$z)
play3d(spin3d())
```

编织文件会打开一个设备 window 并按照指定的方式对平面进行动画处理,但是编织过程会挂起,直到用户在设备获得焦点时按下 ESC;完成后编织恢复,生成的 html 文件仅包含静态 3d 图(即没有动画)。

在不提前保存电影的情况下,有没有办法在 markdown html 中为 plot3d 个对象设置动画?

play3d 纯粹是为了控制 rgl 在 R 中的显示。要控制 HTML 文档中的显示有点复杂。您需要这样的代码:

```{r setup, include=FALSE}
library(knitr)
library(rgl)
knitr::opts_chunk$set(echo = TRUE)
```    
```{r}
A <- merge(1:100,1:100,by=NULL)
A$z <- 0.5*A$x - 0.5*A$y
plot3d(x=A$x,y=A$y,z=A$z)
fn <- spin3d()
control <- par3dinterpControl(fn, 0, 3, steps = 15)
rglwidget() %>% playwidget(control, step=0.01, loop = TRUE, rate = 0.5)
```

这将显示如下内容:

您可以点击按钮来控制旋转。