使用代码绘制矩形面片
\documentclass{standalone}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}
\begin{axis}
\addplot3[patch,patch type=rectangle,table/row sep=\\,patch table={0 1 2 3\\}] table[row sep=\\]
{%
x y z \\
0 0 0 \\ % 0
-1 -1 0 \\ % 1
-1 -1 1 \\ % 2
0 0 1 \\ % 3
};
\end{axis}
\end{tikzpicture}
\end{document}
工作正常,但是
\documentclass{standalone}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}
\begin{axis}
\addplot3[patch,patch type=rectangle,table/row sep=\\,patch table={0 1 2 3\\}] table[row sep=\\]
{%
x y z \\
0 0 0 \\ % 0
-1/sqrt(3) -1 0 \\ % 1 % USE OF SQRT!
-1/sqrt(3) -1 1 \\ % 2 % USE OF SQRT!
0 0 1 \\ % 3
};
\end{axis}
\end{tikzpicture}
\end{document}
给出错误
! Package PGF Math Error: Could not parse input '-1/sqrt(3)' as a floating point number, sorry. The unreadable part was near '/sqrt(3)'..
我应该如何修改代码,使得类似的数学函数sqrt(...)
可以PGFplots
在内联中使用table
并且不会产生错误?
答案1
TikZ 正常运行一切通过 \pgfmathparse,但这里不是这种情况。您必须对其进行预格式化。
\documentclass{standalone}
\usepackage{pgfplots}
\begin{document}
\pgfmathparse{-1/sqrt(3)}
\let\tempx=\pgfmathresult
\begin{tikzpicture}
\begin{axis}
\addplot3[patch,patch type=rectangle,table/row sep=\\,patch table={0 1 2 3\\}] table[row sep=\\]
{%
x y z \\
0 0 0 \\ % 0
{\tempx} -1 0 \\ % 1 % USE OF SQRT!
{\tempx} -1 1 \\ % 2 % USE OF SQRT!
0 0 1 \\ % 3
};
\end{axis}
\end{tikzpicture}
\end{document}