Я построил ряд точек, используя пакет rgl
в R. Я разработал их в двух измерениях для простоты, но проблема все еще существует в трех измерениях. Фрагмент кода и график ниже показывают основную линию точек, построенных в плоскости ху:Проблемы с 'rgl' в R
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)
точки диаграммы, как ожидалось. Однако, если я эти же точки, и перевести их в значительном количестве, графическое устройство не кажется, чтобы быть в состоянии обрабатывать точки:
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)
Это известное ограничение? Проблема с OpenGL или с пакетом? Я работаю с некоторыми точками и поверхностями, которые имеют связанную систему координат, поэтому я бы предпочел не переводить мои данные обратно в исходное.
Похоже, вы ограничены точностью плавания. OpenGL byu по умолчанию работает только с одноточечными поплавками (что отлично подходит для графики). С современными GL и GPU (GL 4.x) вы могли бы использовать двойную точность для данных и преобразований вершин, но я не знаю, поддержит ли это rgl. – derhass