由一组节点构成的立体凸图形的 3D 图

由一组节点构成的立体凸图形的 3D 图

我想根据顶点坐标绘制凸包。

要点如下:

0   0   0
0   0   0.285957
0   0.285957    0.285957
0   0.3812378724    0.1906189362
0   0.571914    0
0.1906761276    0.3812378724    0.1906189362
0.285957    0.285957    0.285957
0.571914    0   0
0.571914    0   0.285957

{x,y,z} 列。

我可以使用 Mathematica 绘制该图,得到以下图形:

在此处输入图片描述

我在这个链接中看到了这个例子 “绘制与 3D 位置有关的 TikZ 项目,而不是代码中的出现顺序”,我认为这与我的问题类似。

我想知道是否有办法从这样的顶点制作一个图形,并使用透明度来区分具有相同轴图形的两个或三个立体图形。

问候

答案1

我不明白你到底在问什么。如果是关于如何绘制多边形,下面的内容可能会有所帮助。否则,你至少有一个 MWE 可以玩,并解释你想要什么。策略是绘制列表中包含的顶点的三角形(因为你的屏幕截图有三角形)。据我所知,没有函数可以找出 3D 顶点列表的边界多边形,即凸包。

\documentclass{article}

\usepackage{pgfplots}
\pgfplotsset{compat=1.16}

\usepgfplotslibrary{patchplots}

\begin{document}

\begin{tikzpicture}
\begin{axis}[view/h=-60,xlabel=$x$,ylabel=$y$,colormap/blackwhite]
\addplot3[%xmin=0,xmax=1,
    opacity=0.5,
    table/row sep=\\,
    patch,
    patch type=polygon,
    vertex count=3,
    patch table with point meta={%
    % pt1 pt2 pt3 pt4 pt5 cdata
        0 1 2 1\\
        0 2 8 2\\
        0 1 8 3\\
    }
]
table {
    x y z\\
    0   0   0\\ %0
    0   0   0.285957\\ %1
    0   0.285957    0.285957\\ %2
    0   0.3812378724    0.1906189362\\ %3
    0   0.571914    0\\ %4
    0.1906761276    0.3812378724    0.1906189362\\ %5
    0.285957    0.285957    0.285957\\ %6
    0.571914    0   0\\ %7
    0.571914    0   0.285957\\ %8
};
\end{axis}
\end{tikzpicture}
\end{document}

在此处输入图片描述

相关内容