我正在使用正方形的对称性将其巧妙地应用于魔方,但我不确定如何有效地表示正方形的对称性。我希望能够排版我的抽象代数书中的以下正方形:
不幸的是,我对 并不十分熟悉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}