绘制带有特定标记的正方形

绘制带有特定标记的正方形

我正在使用正方形的对称性将其巧妙地应用于魔方,但我不确定如何有效地表示正方形的对称性。我希望能够排版我的抽象代数书中的以下正方形:

在此处输入图片描述

不幸的是,我对 并不十分熟悉tikz,但我很确定这就是这里所需要的。有人知道如何使用环境制作上面的正方形吗tikzpicture?另一个目标是能够生成如下图形: 在此处输入图片描述

我完全不知道如何生成上面显示变换的图像,但第一张指示正方形对称性的图像 - 我在手册中找到了以下代码tikz

\begin{tikzpicture}
\foreach \name/\angle in {a/0,b/90,c/180,d/270}
\node (\name) at (\angle:1) {$\name$};
\path[->] (b) edge (a)
edge (c)
edge [-,dotted] (d)
(c) edge (a)
edge (d)
(d) edge (a);
\end{tikzpicture}

然而,这实际上并没有给我我想要的东西。有人知道如何使用 制作这两幅图像tikz吗?

答案1

这是你的第一个问题的答案(简短的回答,但对于开始使用 tikz 的人来说可能不是很好):

\begin{tikzpicture}
  \node[draw,inner sep=1cm](R){};
  \draw[dashed] foreach \angle/\inlabel/\outlabel in
    {0//, 45/$D_2$/b, 90//V, 135/$D_1$/a, 180//H, 225//d, 270//, 315/p/c}
    {(R.center) -- (R.\angle) node[fill=white, pos=.5]{\inlabel} node[label=\angle:\outlabel]{}} ;
\end{tikzpicture}

在此处输入图片描述

对你的第二个问题有一个答案:

\tikzset{
  rect/.style n args={4}{
    draw, thick, inner sep=1cm, label=45:#1, label=135:#2, label=225:#3, label=315:#4
  },
  arrow/.style={thick, ->,shorten <= 5mm, shorten >= 5mm}
}

\begin{tikzpicture}
  \path (0,0) node[rect=badc](A){} ++(4,0) node[rect=adcb](B){} ++(4,0) node[rect=bcda](C){};
  \draw[arrow] (A.0) -- node[pos=.5, above] {$\mu_{90}$} (B.180);
  \draw[arrow] (B.0) -- node[pos=.5, above] {$\rho_{H}$} (C.180);
  \draw[arrow] (A.90) to[bend left] node[pos=.5, above] {$\rho_{H} \circ \mu_{90}$} (C.90);
\end{tikzpicture}

在此处输入图片描述

答案2

这是对您的第一个问题的回答。

\documentclass[tikz]{standalone}
\usetikzlibrary{calc}
\begin{document}
    \begin{tikzpicture}[font=\small,thick]
      \foreach \name/\angle in {a/135,b/45,c/315,d/225}
        \node (\name) at (\angle:2) {\strut$\name$};
        \draw (b.south west) -- node[above=4pt](v){$V$} (a.south east) --
              node[left=2pt](h){$H$}(d.north east) -- (c.north west) -- cycle;
        \draw[dotted] (b.south west) -- node[pos=0.25,fill=white]{$D_2$} (d.north east);
        \draw[dotted] (a.south east) -- node[pos=0.25,fill=white]{$D_1$}
                                        node[pos=0.75,fill=white]{$p$}
                                        (c.north west);
        \draw[dotted] ($(b.south west)!0.5!(a.south east)$) -- ($(d.north east)!0.5!(c.north
             west)$);
         \draw[dotted] ($(d.north east)!0.5!(a.south east)$) -- ($(b.south west)!0.5!(c.north
             west)$);
    \end{tikzpicture}
\end{document}

在此处输入图片描述

相关内容