Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将rgl 3D场景保存到u3d(用于.pdf集成)_R_Raster_Rgl_U3d - Fatal编程技术网

将rgl 3D场景保存到u3d(用于.pdf集成)

将rgl 3D场景保存到u3d(用于.pdf集成),r,raster,rgl,u3d,R,Raster,Rgl,U3d,我有一个用R rgl软件包生成的3D场景 我可以通过rgl函数将其保存为RTL和OBJ格式,但这些函数不支持颜色 我可以将其保存在WebGL中,但是我找不到WebGL到.u3d转换器,也找不到在.pdf文件(使用LaTeX生成)中插入WebGL内容的任何方法 我可以将其保存为PLY格式,然后导出到.u3d(例如使用Meshlab),但它会给我以下错误: Error in if (sum(normals[1:3, it[j, i]] * normal) < 0) normals[, it[

我有一个用R rgl软件包生成的3D场景

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

    Error in if (sum(normals[1:3, it[j, i]] * normal) < 0) normals[, it[j,  : 
    missing value where TRUE/FALSE needed 
    
    如何将3d场景保存为可以使用LaTeX以.pdf格式进行编辑的格式?

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


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

    您可以使用
    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")
    
    >x rgl.postscript(“persp3d.pdf”、“pdf”)
    


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

    示例文件不再可从链接站点下载。你能再上传一次吗?或者你有其他简单的方法来重现PLY的问题吗?@WhiteViking谢谢你通知我。我已经更新了下载链接,现在应该可以用了。并且可能会被证明是有用的,您可以使用
    writePLY(“alps3d.ply”,withNormals=F)
    避免错误。对于这个似乎只有平面几何体的特殊模型,没有顶点法线并不是什么大问题。因此,最终将得到一个包含几何体和颜色信息的PLY文件。然而。。。MeshLab不会从PLY文件中读取任何颜色信息。因此,使用MeshLab转换为U3D也不是一种可行的方法。我曾经使用persp3d和rgl.snapshot导出rgl对象,后者可以导出图片。对于3D电影,我使用了movie3d,它有一个导出电影的选项。如果您已经看过了,您能告诉我们如何在LaTeX文档中使用WriteEasy()的输出以获得完整性的资源吗?(除非这现在更像是一个LaTeX问题?)我看到的标准渐近线文档和帮助页面看起来并没有完全涵盖所需内容,而且我使用来自
    > 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")