标记立体的顶点

标记立体的顶点

我必须标记以下立体(立方体)的顶点,以便标签不与立体的边界重叠。

\documentclass{article}
\usepackage{amsmath}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\foreach \n/\x/\l/\p in{
1/{( 0  , 0)}/{$x_1y_1z_1$}/below,
2/{( 4, 0)}/{$x_1y_2z_1$}/below,
3/{( .8, 1)}/{$x_1y_2z_2$}/right,
4/{( 4.8, 1)}/{$x_1y_1z_2$}/right,
5/{( 0, 4)}/{$x_2y_2z_1$}/above,
6/{( 4, 4)}/{$x_2y_1z_1$}/above,
7/{( 0.8, 4.8)}/{$x_2y_1z_2$}/above,
8/{( 4.8, 4.8)}/{$x_2y_2z_2$}/above
}
{
        \node[inner sep=2pt,circle,draw,fill,label={\p:\l}] (\n) at \x {};
    }
\draw (1) -- (2) -- (6) -- (5) -- (1);
\draw (5) -- (6) -- (8) -- (7) -- (5);
\draw (2) -- (4) -- (8) -- (6) -- (2);
\draw[dashed] (1) -- (3) -- (4);
\draw[dashed] (3) -- (7);
\end{tikzpicture}
\end{document}

答案1

贴上“不重叠边界”的标签可能是主观的。这样就足够了吗?

在此处输入图片描述

这是通过对代码进行以下小改动实现的:

\documentclass[border=5mm,tikz]{standalone}
\usepackage{tikz}
\begin{document}

\begin{tikzpicture}
\foreach \n/\x/\l/\p in{
1/{( 0  , 0)}/{$x_1y_1z_1$}/below,
2/{( 4, 0)}/{$x_1y_2z_1$}/below,
3/{( .8, 1)}/{$x_1y_2z_2$}/south east,
4/{( 4.8, 1)}/{$x_1y_1z_2$}/right,
5/{( 0, 4)}/{$x_2y_2z_1$}/left,
6/{( 4, 4)}/{$x_2y_1z_1$}/south west,
7/{( 0.8, 4.8)}/{$x_2y_1z_2$}/above,
8/{( 4.8, 4.8)}/{$x_2y_2z_2$}/above
}
{
        \node[inner sep=2pt,circle,draw,fill,label={\p:\l}] (\n) at \x {};
    }
\draw (1) -- (2) -- (6) -- (5) -- (1);
\draw (5) -- (6) -- (8) -- (7) -- (5);
\draw (2) -- (4) -- (8) -- (6) -- (2);
\draw[dashed] (1) -- (3) -- (4);
\draw[dashed] (3) -- (7);
\end{tikzpicture}

\end{document}

\p我只更改了循环中的部分值,在几个地方使用south eastsouth west,而above不是below。如果这不是您想要的,请提供有关您希望如何放置标签的更多详细信息。

顺便说一句,画一个蒂克兹立方体,如果你使用 3D 坐标。例如,代码

\documentclass[border=5mm,tikz]{standalone}
\usepackage{tikz}
\begin{document}

\begin{tikzpicture}
  \draw[thick](2,2,0)--(0,2,0)--(0,2,2)--(2,2,2)--(2,2,0)--(2,0,0)--(2,0,2)--(0,0,2)--(0,2,2);
  \draw[thick](2,2,2)--(2,0,2);
  \draw[gray](2,0,0)--(0,0,0)--(0,2,0);
  \draw[gray](0,0,0)--(0,0,2);
\end{tikzpicture}

\end{document}

生产

在此处输入图片描述

相关内容