使用 Tikz 绘制一个部分位于另一个矩形后面的矩形

使用 Tikz 绘制一个部分位于另一个矩形后面的矩形

我有两个不同的问题。这旨在与 Beamer 一起使用,但我使用独立版本以使其更紧凑。因此该命令\pause已被注释但应该使用。

第一个问题:蓝色矩形,如果与右上角矩形相交的部分隐藏在后面且不可见,那就太好了。我尝试用白色填充矩形,但看不到数字。

(-,12)第二个问题:应一起使用的标记\pause,如何做才能使得第二次用星号书写时(-,12)^{*}第一次标记被删除。

在此处输入图片描述

\documentclass[border=5pt]{standalone}
\usepackage[utf8]{inputenc}
\usepackage{amsmath}
\usepackage{tikz}
\usetikzlibrary{matrix,shapes,arrows,fit}
\usepackage{adjustbox}


                
\begin{document}

\begin{tikzpicture}[->,>=stealth',shorten >=1pt,auto,
node distance = 20mm and 40mm, semithick]
 
\matrix(m) [matrix of math nodes, nodes in empty cells, nodes={minimum size=1cm, outer sep=0pt, text height=1.5ex, text depth=.25ex}]
{
 0      &    & 1        &      6  \\
        &    &          &         \\
\infty  &    & 0        &         \\
        &    &          &         \\
};

\draw (m-1-1.north west) rectangle (m-4-4.south east);

% Horizontal lines
\draw[-] (m-2-1.south west) -- (m-2-4.south east);
% Vertical lines
\draw[-] (m-1-2.north east) -- (m-4-2.south east);
% Box around upper right corner
\draw (m-1-4.south west) rectangle (m-1-4.north east);
% Blue marking
\node[draw=blue,rounded corners = 1ex,fit=(m-1-3)(m-2-4),inner sep = -5pt] {};

\node at (3,1) {$(-,12)$};
\node at (1,-2.5) {$(1,6)$};
% I intend to use this with beamer \pause
\node at (3,1) {$(-,12)^{*}$};



\end{tikzpicture}


\end{document}


答案1

这对你有帮助吗(这并不完全符合你最初的代码):

\documentclass{beamer}
\usepackage[utf8]{inputenc}
\usepackage{amsmath}
\usepackage{tikz}
\usetikzlibrary{matrix,shapes,arrows,fit}
\usepackage{adjustbox}

\begin{document}
    \frame{\frametitle{title}
    \centering
        \begin{tikzpicture}[x=20mm,y=20mm]
            \draw<2->[thick,blue,rounded corners=10pt] (1.1,1.1) rectangle (1.9,1.9);
            \draw[step=20mm,thick] (0,0) grid (2,2);
            \draw[thick,fill=white] (1.5,1.5) rectangle (2,2);
            \node[rectangle,minimum size=10mm,anchor=north east] at (2,2) {6};
            \begin{scope}[every node/.style={anchor=north west},xshift=2.5mm,yshift=-2.5mm]
                \node at (0,1) {$\infty$};
                \node at (0,2) {0};
                \node at (1,1) {0};
                \node at (1,2) {1};
            \end{scope}
            \node[anchor=north] at (1.5,0) {$(1,6)$};
            \node[anchor=west] at (2,1.5) {$(-,12)\onslide<2>{^\star}$};
        \end{tikzpicture}
    }
\end{document}

相关内容