我想根据顶点坐标绘制凸包。
要点如下:
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}