Допустим, у меня есть трехмерный график рассеяния в R или фрейм данных с 3 полями, заполненными числовыми данными.
Как это можно «превратить» в «нечто», которое можно смотреть на 3D-телевизоре (например, случайный телевизор с большим экраном от Samsung, использующий очки для затвора)? Либо статический клип этого точечного графика, вращающегося вокруг оси, либо еще лучше возможность взаимодействовать с графиком (переместить его, повернуть, ...). Какие программы, библиотеки вам нужны для этого?
(Я только что поднял R, потому что это то, где работа сделана. Но решение не обязательно должно включать R)
Ответы:
Вы можете сгенерировать два изображения (для левого и правого глаза) для каждого кадра вашей анимации, установить их рядом (чтобы получить очень широкое или горизонтально сжатое изображение) и сгенерировать видеофайл таким образом. , Затем поместите этот файл на USB-накопитель, подключите его к современному 3D-телевизору и загляните в его меню 3D, вы должны найти опцию «бок о бок» или «SBS», которая поймет, как отображать изображение. (Ищите на YouTube «GoPro 3D», чтобы найти множество примеров.)
Вы могли бы сделать то же самое с компьютером, подключенным к телевизору в качестве монитора, но не 3D части рабочего стола должны были бы быть скрыты, так как они не дублировались бы для каждого глаза (и выглядели бы странно).
Примечание. Если вы подключите компьютер к 3D-экрану в режиме SBS, вам будет полезно закрыть один глаз за раз во время навигации, чтобы начать презентацию.
источник
На самом деле вам просто нужен spinnable plot3d () из пакета rgl .
Создайте два экземпляра базового графика, слегка повернутых в противоположных направлениях (для полностью центрированного линзовидного вида) или слегка увеличенных и уменьшенных соответственно (для более стандартного трехмерного вида)
Икс.
Оттяните график еще дальше, больше синего цвета, так же, как оттенок ближе, более красный.Обновляйте его каждый цикл прорисовки. Одновременно отображать каждый экземпляр графика после обновления.Существует краткое описание rgl и аналогичного пакета для 3D-графиков, которое можно увидеть в конце этой публикации .
Если вы можете, вы захотите разместить какой-то эффект размытия, управляемый перспективой, просто визуально на каждом графике, используя OpenGL. Конечно, вам, вероятно, придется немного подправить углы, чтобы все было правильно. Если я вспоминаю, угол должен быть <20 градусов ... но кто знает, не я!
источник