我需要绘制一个包含以下点的散点图:(1,1,0)、(-2,0,2) 和 (2,1,1),然后我需要绘制一个通过这三个点的平面。我对在 LaTex 中创建图表了解不多,所以我不知道从哪里开始。有人能帮我吗?
答案1
例如,使用 tikz-3plot 可以轻松完成这一切。(我并不是说这一定是最好的选择。如果你想绘制真实的 3D 对象,请使用渐近线。但是,这个问题很简单,可以用 tikz 来解决。)不幸的是,你没有指定平面有多大,更重要的是,视角应该是多少。为了说明这一点很重要,我展示了一个动画,其中我绘制了点,一种“最小”平面,并为一个角度制作动画。
\documentclass[tikz,border=3.14mm]{standalone}
\usepackage{tikz-3dplot}
\usetikzlibrary{calc}
\begin{document}
\foreach \X in {0,10,...,350}
{\begin{tikzpicture}
\tdplotsetmaincoords{70}{\X}
\draw[clip] (-4,-4) rectangle (4,4);
\begin{scope}[tdplot_main_coords]
\path (1,1,0) coordinate (X1) (-2,0,2) coordinate (X2) (2,1,1) coordinate (X3);
\fill[gray!20] (X1) -- (X2) -- (X3) -- ($(X1)+(X3)-(X2)$) -- (X1);
\end{scope}
\foreach \X in {1,2,3}
{\shade[ball color=blue] (X\X) circle (2pt);}
\end{tikzpicture}}
\end{document}
当然,如果你提供更多意见,我会很乐意调整这一点。这是一个带轴的版本。
\documentclass[tikz,border=3.14mm]{standalone}
\usepackage{tikz-3dplot}
\usetikzlibrary{calc}
\begin{document}
\foreach \X in {0,10,...,350}
{\begin{tikzpicture}
\tdplotsetmaincoords{70}{\X}
\draw[clip] (-4,-4) rectangle (4,4);
\begin{scope}[tdplot_main_coords]
\draw [-latex] (0,0,0) -- (1,0,0) node[pos=1.5]{$x$};
\draw [-latex] (0,0,0) -- (0,1,0) node[pos=1.5]{$y$};
\draw [-latex] (0,0,0) -- (0,0,1) node[pos=1.5]{$z$};
\path (1,1,0) coordinate (X1) (-2,0,2) coordinate (X2) (2,1,1) coordinate (X3);
\fill[gray,opacity=0.2] (X1) -- (X2) -- (X3) -- ($(X1)+(X3)-(X2)$) -- (X1);
\end{scope}
\foreach \X in {1,2,3}
{\shade[ball color=blue] (X\X) circle (2pt);}
\end{tikzpicture}}
\end{document}
附录:将其嵌入文章的一种方法。
\documentclass{article}
\usepackage{tikz,tikz-3dplot}
\usetikzlibrary{calc}
% the following packages are not needed to draw the plane
\usepackage{amsmath}
\usepackage{lipsum}
\usepackage{cleveref}
\begin{document}
\lipsum[1]
\section{A plane}
A plane in three dimensions can be defined by three points which do not sit on
one line. In \cref{fig:Plane} we depict a plane that is defined by the points
\begin{equation}
P_1=(1,1,0)\;,\quad P_2=(-2,0,2) \quad\text{and}\quad P_3=(2,1,1)\;.
\end{equation}
\begin{figure}[h]
\centering
\begin{tikzpicture}
\tdplotsetmaincoords{70}{110}
\draw[clip] (-4,-4) rectangle (4,4);
\begin{scope}[tdplot_main_coords]
\draw [-latex] (0,0,0) -- (1,0,0) node[pos=1.5]{$x$};
\draw [-latex] (0,0,0) -- (0,1,0) node[pos=1.5]{$y$};
\draw [-latex] (0,0,0) -- (0,0,1) node[pos=1.5]{$z$};
\path (1,1,0) coordinate (X1) (-2,0,2) coordinate (X2) (2,1,1) coordinate (X3);
\fill[gray,opacity=0.2] (X1) -- (X2) -- (X3) -- ($(X1)+(X3)-(X2)$) -- (X1);
\end{scope}
\foreach \X in {1,2,3}
{\shade[ball color=blue] (X\X) circle (2pt);}
\end{tikzpicture}
\caption{A plane in three dimensions.}
\label{fig:Plane}
\end{figure}
\lipsum[2]
\end{document}