11

我有一个使用 R rgl 包生成的 3D 场景。

  • 我可以通过 rgl 函数将其保存为 RTL 和 OBJ 格式,但这些函数不支持颜色。
  • 我可以将它保存在 WebGL 中,但是我找不到 WebGL 到 .u3d 的转换器,也找不到将 WebGL 内容插入 .pdf 文件(使用 LaTeX 生成)的任何方法。
  • 我可以将其保存为 PLY 格式,然后导出到 .u3d(例如使用 Meshlab),但它给了我以下错误:

    Error in if (sum(normals[1:3, it[j, i]] * normal) < 0) normals[, it[j,  : 
    missing value where TRUE/FALSE needed 
    

我真的不知道如何解决。

是重现问题的示例文件。要重现,只需下载工作目录中的文件,执行 R 并运行:

library(rgl)
load("alps3d.Rdata") #This loads the alps3d variable
plot3d(alps3d)
writePLY("alps3d.ply")

如何将 3d 场景保存为可以使用 LaTeX 在 .pdf 中进行迭代的格式?

4

2 回答 2

3

你应该试试 writeASY()。它为 Asymptote 编写,它可以生成 PRC 而不是 U3D,但可能已经足够好了。我尝试了您的示例场景,在 Acrobat Reader 中加载结果大约需要 5 分钟,但它最终会加载并工作。

writeASY() 是最近添加到 rgl 的;您需要从 R-Forge 或 Github 副本中获取它。

于 2016-06-13T01:51:49.497 回答
3

您可以使用rgl.postscript,它允许导出为各种格式,包括 pdf。好吧,结果不是很好,但这应该取决于情节的类型。

> x <- y <- seq(-10, 10, length = 20)
> z <- outer(x, y, function(x, y) x^2 + y^2)
> persp3d(x, y, z, col = 'lightblue')
> rgl.postscript("persp3d.pdf", "pdf")

在此处输入图像描述

您还可以导出到tex,允许进行一些手动修改。

于 2018-02-21T13:47:56.127 回答