我知道可以将三维文件嵌入 PDF,然后\LaTeX
读者可以与之进行主动交互(参见这里例如)。
我有一个用 制作的表面图pgfplots
。有什么方法可以让这个表面图具有交互性,即让读者可以随意旋转表面吗?
这显然只适用于有限的一组阅读器(可能仅限于最新版本的 Adobe Reader),但为了尝试,我愿意承担这样做的后果。
答案1
Pgfplots 仅支持二维投影。
答案2
我不确定你是否可以用 pgfplots 来做到这一点,但是渐近线擅长这种事情。
例如,这是 Beamer 幻灯片形式的 MWE,其中包含我为多元回归讲座创建的交互式图表。如果您使用 Acrobat Reader 打开它,则可以单击图表,然后进行旋转、缩放等操作。
因为我喜欢将 LaTeX 和图形代码分开,所以我将其分成两个文件,asyslide.tex
和multiregr.asy
。
系统幻灯片
\documentclass{beamer}
\usepackage[inline]{asymptote}
\begin{document}
\begin{frame}
\frametitle{Geometry of Multiple Regression}
\begin{center}
\asyinclude[height=2.5in,inline=true]{multiregr.asy}
\end{center}
\end{frame}
\end{document}
多注册
settings.render=10;
settings.prc=true;
settings.outformat="pdf";
import three;
size(200);
defaultpen(fontsize(9));
currentprojection=perspective(4,2,1.5);
/* draw the X,Y-plane */
path3 xplane = (0,0,0)--(2,0,0)--(2,2,0)--(0,2,0)--cycle;
draw(xplane,gray);
/* X vectors */
path3 x1 = (0,0,0)--(1.75,1,0);
draw(Label("$\mathbf{x}_1$", 1),x1,Arrow3);
path3 x2 = (0,0,0)--(0.5,1.9,0);
draw(Label("$\mathbf{x}_2$", 1, align=S),x2,Arrow3);
path3 y= (0,0,0)--(1.8, 1.5,1.2);
draw(Label("$\mathbf{y}$", 0.75, align=2*W),y,Arrow3);
/* Project Y into subspace of Xs */
path3 projy = planeproject(xplane)*y;
triple endpoint = invert(point(length(projy)));
draw(Label("$\mathbf{\widehat{y}}$", 1, align=E),projy,red,Arrow3);
draw(Label("$\mathbf{e}$", 0.75,align=RightSide),(1.8,1.5,0)--(1.8,1.5,1.2),red+dashed,Arrow3);
您可以将此示例编译为:
pdflatex asyslide.tex
asy asyslide*.asy
pdflatex asyslide.tex
这将生成以下输出: