r - 如何在rgl中绘制到整个窗口?
问题描述
我在 rgl 中将 4 个子图绘制到一个窗口,我希望它们填充可用空间:
library(rgl);
rgl::open3d(windowRect = c(0,50, 1200, 1200));
rgl::mfrow3d(2, 2);
rgl::next3d(reuse=FALSE);
rgl::bg3d("yellow");
rgl::next3d(reuse=FALSE);
rgl::bg3d("blue");
rgl::next3d(reuse=FALSE);
rgl::bg3d("red");
rgl::next3d(reuse=FALSE);
rgl::bg3d("green");
然而,结果只使用了窗口的一小部分,它看起来像这样:
如何使 4 个彩色区域跨越整个窗口,而不是仅使用左下角的小部分?
解决方案
它为我提供了几个小时的工具,但我终于设法让我自己可靠地工作。看来您必须在 open3d() 之后调用 par3d()。
还要注意对 Sys.sleep 的调用,正如上面评论中 user20650 所建议的那样。没有它,窗口只有在点击后才会以全尺寸绘制(在我的机器上?)。
完整的工作代码:
rgloptions = list("windowRect"=c(50,50,1000,1000));
rgl::open3d();
do.call(rgl::par3d, rgloptions);
Sys.sleep(1);
rgl::mfrow3d(2, 2);
rgl::next3d(reuse=FALSE);
rgl::bg3d("yellow");
rgl::next3d(reuse=FALSE);
rgl::bg3d("blue");
rgl::next3d(reuse=FALSE);
rgl::bg3d("red");
rgl::next3d(reuse=FALSE);
rgl::bg3d("green");
这可靠地提供了以下输出:
推荐阅读
- android - Flutter:如何赋予彩色容器不透明度?
- javascript - 生成子执行命令在 stdout.on('data') 上显示的文件比实际存在的文件多
- reactjs - 点击后反应组件不更新
- java - 如何将文件放在类路径中?
- angular - 如何在 TypeScript 中遍历这些数据?
- c# - 在 tablelayoutpanel 中看不到标签调整大小
- http - 我的 netty 程序有时会出现“对等连接重置”之类的异常
- mysql - 如何将多个表和组 concat 连接到一个查询中
- angular - 在模块导入时使用不同的服务
- ios - XLForm 多级选择器