在PowerPoint中嵌入一个R语言制作的动态3D图表

13
rgl R软件包允许绘制交互式3D图形,并使用writeWebGL()函数将这些图形保存在html文档中。我想在PowerPoint演示文稿中放置这样一个交互式3D图形,是否可能?经研究发现,目前Luke Tierney的方法只适用于misc3d软件包创建的3D图形,而非rgl软件包创建的图形。此外,VRML/X3D文件导出已被宣布为未来计划,也许可以将3D rgl图形嵌入PowerPoint和/或LaTeX演示文稿中。相关讨论请参见此处

1
在后台运行一个浏览器,甚至是 R,使用 Alt-Tab 在它们之间切换。 - James
2个回答

6

谢谢。当然我更喜欢LaTeX渲染,但我确实需要用PowerPoint做演示。你所说的“转移PowerPoint演示文稿”是什么意思? - Stéphane Laurent
将PP演示文稿导出为PDF。 - Dieter Menne
我使用R包misc3d创建了一个OFF文件。但现在,1)如何将此文件放入Powerpoint演示文稿中?2)如何导出为PDF? - Stéphane Laurent
我不熟悉Powerpoint,但是一些谷歌搜索(请随意搜索!)显示misc3d生成的u3d格式可以直接被Powerpoint读取,因此不需要pdf绕道(搜索“export pdf powerpoint”会得到数千个结果)。 - Dieter Menne
谢谢。我还没有找到在Powerpoint中读取u3d文件的方法。希望有人能帮忙。然后我需要使用Meshlab将OFF转换为u3d?关于PDF导出,我已经搜索过了,但只找到了使用PDFcreator或VirtualPDF的方法。 - Stéphane Laurent

5

如果您将此放入 HTML 文档中,您可能可以使用 IWebBrowser2 对象来打开幻灯片内的 HTML。我不确定 3D 图形会如何呈现,也不熟悉 R 无法提供进一步的建议,但您可以尝试在幻灯片内简单地创建一个 WebBrowser 对象,然后告诉它导航到 HTML 文件。

Sub InsertHTMLFrame()
Dim sld as Slide
Dim shp as Shape
Dim wb as Object
Set sld = ActivePresentation.Slides(1) '## Modify as needed

'## Create the shape container, you will need to modify the L/T/W/H to fit your document
Set shp = sld.Shapes.AddOLEObject(100, 200, 200, 150, _
    "Shell.Explorer.2")
shp.Name = "3dgraphic"
Set wb = shp.OLEFormat.Object

wb.Navigate "C:\Users\you\Desktop\exported3dgraphic.html"
End Sub

在幻灯片放映模式下控制此流程可能会有点棘手,但只要像这样通过IE正确渲染图形即可做到。

如何安装此宏

  1. 打开您的PowerPoint演示文稿,并点击Alt + F11以打开Visual Basic项目。
  2. 右键单击左侧窗格中的项目,然后插入模块:

enter image description here

  1. 将我的答案中的代码粘贴到此模块中。
  2. 在“wb.Navigate“ C:\...”一行中,将其修改为HTML文件的正确文件路径。这可以是您的计算机上或共享网络文件夹中的文件。

当处于幻灯片放映模式时,浏览器应该能够显示HTML页面,但不会在常规或预览模式下呈现它们。


感谢您的贡献。我没有点赞,因为我对HTML一无所知,所以看不懂任何一个词 :) - Stéphane Laurent
@StéphaneLaurent 这不是HTML本身,而是一个宏,可以将HTML插入到您的PowerPoint幻灯片中。我会提供更多关于如何将此宏添加到您的演示文稿的详细信息,然后我们可以看看它是否适用于您。 - David Zemens

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接