我想用 pgfplots 绘制一个函数(二维图),以便该图绘制在之前指定的给定平面上(例如 $a_1x_1 + a_2x_2 + a_3x_3 = b$)。二维坐标系也应绘制在平面上。
像这样:
\documentclass{article}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}
%%Define plane
\definePlane{E}{3*x + 4*y + 5*z = 6}
\begin{axis}[canvasPlane=E]
\addplot gnuplot {sin(x));
\end{axis}
\end{tikzpicture}
\end{document}
答案1
如果你的相机位于 (3,4,5) 并朝向原点,你将看到以下内容:
\documentclass{article}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}
\begin{axis}
\addplot {sin(\x r)};
\end{axis}
\end{tikzpicture}
\end{document}
如果你的相机位于 (10,0,0) 并朝向原点,你将看到以下内容
\documentclass{article}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}[cm={.6,0,-.57,.71,(0,0)}]
\begin{axis}
\addplot {sin(\x r)};
\end{axis}
\end{tikzpicture}
\end{document}
如果你的相机在 xy 平面上,围绕 z 轴旋转,朝向原点,那么你将看到
\documentclass[tikz]{standalone}
\usepackage{pgfplots}
\begin{document}
\foreach\i in{10,20,...,360}{
\tikz{
\path({sin(\i)*.7*207pt},0cm)++({cos(\i)*120pt},0cm)+(-8cm,-1cm)+(8cm,3cm);
\begin{scope}[cm={cos(\i),0,.7*sin(\i),.71,(0,0)}]
\begin{axis}
\addplot {sin(\x r)};
\end{axis}
\end{scope}
}
}
\end{document}
其余的是高中数学。