我曾尝试从 Matlab 等导入外部 3D 图,但无济于事。为了展示我所取得的成就,我在下面提供了一个最小的非工作示例。您知道我做错了什么吗?
干杯,斯蒂法诺斯
生成文件:
all: 3dtest.pdf
3dtest.pdf: 3dtest.tex bumps.png
latexmk -pdflatex="xelatex -shell-escape " -pdf 3dtest.tex
bumps.png: bumps.m
matlab -nodesktop -nosplash -r "bumps;exit"
sleep 1
reset
convert bumps.png -trim +repage -transparent white bumps.png
bumps.m(不要费心用 Octave 运行它,因为某种原因,保存表面图的速度非常慢,而且结果也不是很好):
function bumps()
figure(1)
[X,T]=meshgrid(linspace(0,1,400),linspace(0,2,400));
c=[3 2 5 4];
surf(X,T,abs(sin(c(1)*pi*X).*exp(1j*c(2)*pi*T)+sin(c(3)*pi*X).*exp(1j*c(4)*pi*T)))
shading interp
colormap(jet(1000))
axis off
setPapersize(6*[4 3])
print -dpng bumps
end
function setPapersize(papersize)
set (gcf,'papertype', '<custom>')
set (gcf, 'papersize', papersize)
set (gcf, 'paperposition', [0 0 papersize])
end
3dtest.tex:
\documentclass{standalone}
\usepackage{tikz,pgfplots}
\begin{document}
\begin{tikzpicture}
\begin{axis}[width=10cm]
\addplot3 graphics[points={
(0,0,0) => (1212,0)
(1,0,0) => (2791,428)
(0,2,0) => (0,557)
(0.8872,2,1.854) => (1398,2064)
(1,2,2)
}] {bumps};
\end{axis}
\end{tikzpicture}
\end{document}
生成的图像:
编辑:原始图像:
仅供参考,我在 Texlive 2012 上,使用 XeLaTeX(如 Makefile 中所示)。
答案1
我发现它可以在我的系统上运行,既可以运行 TL 2011 也可以运行 TL 2012,也可以运行 pdflatex 和 xelatex - 只要我使用.png
图像的版本。xelatex
无法编译.jpg
(这是问题中图形的格式);pdflatex 每次都可以工作。
我猜测是你的系统的安装出了问题;尽管我无法根据你的.log
文件(通过私人电子邮件发送)找到问题所在。
答案2
没有 MatLab 也一样。使用xelatex
或运行latex->dvips->ps2pdf
\documentclass[pstricks]{standalone}
\usepackage{pst-solides3d}
\begin{document}
\psset{Decran=60,viewpoint=20 70 15 rtp2xyz}
\begin{pspicture}(-7,-5)(5.5,6.5)
\psSurface[ngrid=0.02 0.02,linewidth=0.2pt,axesboxed,algebraic,
grid=true,showAxes=false,
tablez=0 0.1 2 { } for, zcolor=0.5 1 1 0.03 1 1 (hsb),
Zmin=0,Zmax=2](0,0)(2,4)%
{sqrt((sin(3*Pi*x/2)*cos(2*Pi*y/2)+sin(5*Pi*x/2)*cos(4*Pi*y/2))^2+
(sin(3*Pi*x/2)*sin(2*Pi*y/2)+sin(5*Pi*x/2)*sin(4*Pi*y/2))^2 )}
\end{pspicture}
\end{document}