' RGL' R中的翻译问题

时间:2015-02-25 16:10:37

标签: r opengl rgl

我使用R中的rgl包绘制了一系列点。为简单起见,我将它们绘制在两个维度中,但问题仍然存在于三个维度中。下面的代码片段和图表显示了在xy平面中绘制的基本点线:

library(rgl)
seq <- seq(1, 10, by = 0.1)
df <- data.frame(x = seq, y = seq / 10)

clear3d("all")
bg3d(color = "white")
points3d(x = df$x, y = df$y, z = 0)
axes3d()
rgl.viewpoint(theta = 0, phi = 0)

First plot

积分如预期。但是,如果我采用这些相同的点并将它们大量翻译,那么图形设备似乎无法处理这些点:

library(rgl)
seq <- seq(1, 10, by = 0.1)
df <- data.frame(x = seq, y = seq / 10)

# Translate points
df <- df + 1000000

clear3d("all")
bg3d(color = "white")
points3d(x = df$x, y = df$y, z = 0)
axes3d()
rgl.viewpoint(theta = 0, phi = 0)

Second plot

这是一个已知的限制吗?是OpenGL的问题,还是包?我正在使用一些具有相关坐标系的点和曲面,所以我不想将我的数据转换回原点。

1 个答案:

答案 0 :(得分:1)

@derhass有正确的想法。来自rgl手册:

  

请注意,其中许多计算都是使用单精度在显卡上完成的;如果您的场景需要超过4或5位数的精度来区分任何坐标中的值,您可能会看到舍入误差的迹象。