我正在用 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}