我想在 pgfplots 中包含一个外部图形。我尝试尽可能仔细地遵循手册(p45 及以下)的说明。但结果却很糟糕。
以下是我使用的代码:
\documentclass[12pt,twoside,a4paper]{report}
\usepackage{tikz}
\usepackage{pgfplots}
\pgfplotsset{compat=1.6}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
axis on top=true,
grid=both,minor tick num=1,
xlabel=$x$,ylabel=$y$,zlabel=$z$]
\addplot3 graphics[
points={%difference of canvas y coord. because pgfplots counts from the lower left.
(353,754.7,196) => (2,1192-944)
(356,757,198) => (476,1192-153)
(353,758.5,198) => (188,1192-1)
(356,753.3,196) => (242,1192-1192)
}] {Example.png};
\end{axis}
\end{tikzpicture}
\end{document}
以下是我尝试包含的图形:
这是相同的图形,其中我用橙色标记了 3D 坐标,在下面用黑色标记了画布坐标(我通过绘画读出)。
下面是盒子中的相同图形(用 Mathematica 制作),显示我正确读出了坐标,并给出尺寸和方向的印象:
以下是奇怪结果的屏幕截图:
我猜我做错了什么。但我找不到我的错误。有人能给我一点提示吗?
答案1
PGFPlots 需要四个线性独立的点:它们不能共享同一个超平面。
我认为 Luigi 找到了它产生结果的原因:你的图像是用透视投影生成的。因此,提供的四个向量是线性独立的 - 但它们仍然来自超平面。
我敢打赌,如果你有一个平行线投影(又名正交投影),PGFPlots 将拒绝接受这些点,因为线性系统将是不确定的。
如果只有三个点在超平面上,而一个点在超平面之外,则满足要求并且线性系统定义明确。