Beamer 中通过鼠标控制 360 度视频?

Beamer 中通过鼠标控制 360 度视频?

我正在用 Matlab 制作《权力的游戏》视频网格,用于 360 度视频,灵感来自扎克伯格今天关于 GoT 的视频,在视频开头,你可以将鼠标 360 度移动。我正在考虑在哪里显示输出。我可以从代码中生成任何格式,但不确定用户交互是否可以在任何投影仪的输出格式中保持,正如我在讨论中理解的那样这里关于Web 浏览器中的 Beamer 和 JavaScript

我想在我的 Beamer 演示文稿中嵌入这样一个 360 鼠标控件,存根这里例如,任何格式。HTML 就足够了,可以使用 Beamer (这里)。Beamer 中可能缺少某些元素,导致无法与用户交互。在这种情况下,我想了解是什么。

马克的 360 GoT 视频示例

在此处输入图片描述

伪代码

%% Sources
% https://tex.stackexchange.com/q/98446/13173 for 2D animation
\documentclass{article}

\usepackage{pgfplots}
\usetikzlibrary{ocgx}
\tikzset{ocg button/.style={circle,inner sep=.25em,switch ocg with mark on={#1}{}}}
\tikzset{base/.style={baseline=-0.5ex}}

\newcommand{\function}{x ...}
\newcommand{\buttonUp}[2]{\tikz[base]\node[fill=#2!30,ocg button=#1]{};}
\newcommand{\buttonDown}[2]{\tikz[base]\node[fill=#2!30,ocg button=#2]{};}
\newcommand{\buttonLeft}[2]{\tikz[base]\node[fill=#2!30,ocg button=#3]{};}
\newcommand{\buttonRight}[2]{\tikz[base]\node[fill=#2!30,ocg button=#4]{};}

\begin{document}
\begin{minipage}[b][0.5\textheight][c]{0.2\textwidth}
...
\end{minipage}%

\end{document}

规划文件

  • 是 Flash柔性充足的?
  • 我喜欢 Java API。Java Flex 与其相比如何?
  • 搅拌机。[JohannesB]

.tex 文档上的 2D 网格和查看器

  • 数据.全景.
  • 包裹。animate
  • 步进 1°。这样仅需要 180 帧,从而保持 PDF 大小较小。

.tex 文档上的 3D 网格和查看器

  • 数据。3D全景图。我认为这可能只是一张图片。如何获取/制作这样的数据?
  • 包裹。animate
  • 步进 10°。这只需要 36x18=648 帧,而不会扩大 PDF 大小。

关于制作数据类型的线程这里在 Stackoverflow 中。[AlexG] 方位角的范围是 0° 到 360°,而仰角的范围是 -90° 到 +90°(球体)和 0° 到 +90°(北半球)。如果两个坐标都以 10° 为步长,那么整个球体就是 36x18,半球就是 36x9。等距字体的 ASCII 示例,其中每个角度的半球全景图 9(=18/2)张相互叠放;所有内容都可以放在一张图片中

1 2 3 4 ... 34 35 36
___2D-panorama #1__ 1
___2D-panorama #2__ 2
________etc________ 3
___________________ 4
___________________ ...
___________________ 8
___2D-panorama_ #9_ 9

查看者的元数据

  • 步进角
  • 不丢失数据的投影算法
  • .png 无损压缩

如何用鼠标控制 Beamer 中的视频元素?

答案1

一个简单的全景查看器,用于查看固定的全景图像轴可以使用animate包裹。 (需要 AR。)

该示例使用下载的 360° 图像这里

单击按钮可将视图改变 10°,按 [shift]+单击可将视图改变 1°。

\documentclass{standalone}
\usepackage{animate}
\usepackage{media9}
\usepackage{MnSymbol}
\usepackage{graphicx}
\usepackage{xsavebox}

\begin{document}
\xsavebox{PanoramaImg}{\includegraphics[width=\linewidth]{potw1130a}}%
\xsavebox{PanoramaImg}{\thePanoramaImg\thePanoramaImg}%
\raisebox{-0.5\height}{\mediabutton[
  jsaction={
    var frm=anim['myPanorama'].frameNum;
    if(event.shift) frm--;
    else frm-=10;
    if(frm<0) frm+=360;
    anim['myPanorama'].frameNum=frm;
  }
]{\Huge$\triangleleft$}}%
\raisebox{-0.5\height}{%
  \begin{animateinline}[label=myPanorama,step,nomouse]{1}
    \multiframe{360}{dStep=0pt+\dimexpr\linewidth/360\relax}{
      \makebox[1.78\height][l]{\hspace{-\dStep}\makebox[0pt][l]{\thePanoramaImg}}
    }
  \end{animateinline}%
}%
\raisebox{-0.5\height}{\mediabutton[
  jsaction={
    var frm=anim['myPanorama'].frameNum;
    if(event.shift) frm++;
    else frm+=10;
    frm\%=360;
    anim['myPanorama'].frameNum=frm;
  }
]{\Huge$\triangleright$}}%
\end{document}

相关内容