在任意平面上添加二维图(三维)

在任意平面上添加二维图(三维)

我想用 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}

其余的是高中数学。

相关内容