You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何解决rgl包保存PDF/SVG矢量图形时3D点不可见的问题?

3D椭球与点在矢量图输出中的显示问题

执行以下示例代码可生成正常的PNG图像,但生成的PDF和SVG图像存在异常:3D点不可见,推测这是3D点与椭球在矢量图形中的兼容性问题导致的,点的显示会破坏椭球表面。

示例代码

if (requireNamespace("MASS", quietly = TRUE)) {
  Sigma <- matrix(c(10, 3, 0, 3, 2, 0, 0, 0, 1), 3, 3)
  Mean <- 1:3
  x <- MASS::mvrnorm(10, Mean, Sigma)
  library(rgl)
  open3d()
  plot3d(x, type="s", lit=FALSE, box = FALSE)
  ellipse <- ellipse3d(Sigma, centre = Mean)
  plot3d(ellipse , col = "darkcyan", alpha = 0.3, add = TRUE)
  shade3d(ellipse, col = "Gray90", alpha = 0.3, lit = FALSE)
  rgl.snapshot(filename = '3dellipse.png', fmt = 'png')
  rgl.postscript('3dellipse.pdf', fmt = 'pdf')
  # alternative way to svg file
  require(x3ptools)
  x3p_snapshot("3dellipse_x3p.svg")
}

将代码中绘制椭球的语句修改为:

plot3d(ellipse, col = "darkcyan", alpha = 0.3, add = TRUE, type="shade")

修改后,生成的PDF和SVG图像中椭球显示正常,但内部的3D点仍不可见。

效果对比

  • 生成的PNG图像:
    正常显示3D点与椭球的PNG图
  • 生成的PDF/SVG图像(异常状态):
    仅显示椭球、无3D点的矢量图

内容的提问来源于stack exchange,提问作者tomek

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 05:54:58