Tikz equivalent for pst-rputover

You can clip against the labels:

\documentclass[tikz]{standalone}
\begin{document}
\begin{tikzpicture}

  \fill[color=blue!40] (0,0) rectangle (2,2);
  \fill[red] plot [smooth] coordinates {(0,2)(1,1)(2,2)} -- cycle;

  \node at (1,1) (mynodeA){\Large\sffamily label};
  \node at (0.5,1.5) (mynodeB){\sffamily label};

  \begin{scope}
  \foreach \n in {mynodeA, mynodeB}{
    \path [clip] 
          (\n.north east) -- 
          (\n.south east) --
          (\n.south west) -- 
          (\n.north west) -- cycle
          (current bounding box.south east) --
          (current bounding box.north east) --
          (current bounding box.north west) --
          (current bounding box.south west) -- cycle;
  }

  \draw(1,0)--(1,2);
  \draw(0.5,0)--(0.5,2);
  \draw(0,1.8)--(2,0.5);
  \end{scope}

\end{tikzpicture}
\end{document}

enter image description here


Just for completeness: this is a version which also takes into account rounded corners or, more generally, arbitrary node shapes. And it spares you from typing a lot of coordinates.

\documentclass[tikz]{standalone}
\usetikzlibrary{shapes.geometric}
\makeatletter % https://tex.stackexchange.com/a/38995/121799
\tikzset{
  use path/.code={\[email protected]{#1}}
}
\makeatother
\tikzset{remember path/.style={save path=\tmprotect}}
% https://tex.stackexchange.com/a/12033/121799
\tikzset{reverseclip/.style={insert path={(current bounding box.north
        east) rectangle (current bounding box.south west)}}}

\begin{document}
\begin{tikzpicture}
  \fill[blue!40] (0,0) rectangle (2,2);
  \fill[red] plot [smooth] coordinates {(0,2)(1,1)(2,2)} -- cycle;
  \node[remember path,font=\Large\sf] at (1,1) {label};
  \clip[use path=\tmprotect,reverseclip];
  \draw(1,0)--(1,2);
\end{tikzpicture}

\begin{tikzpicture}
  \fill[blue!40] (-1,0) rectangle (3,4);
  \fill[red] plot [smooth] coordinates {(-1,4)(0,2)(1,1)(2,2)(3,4)} -- cycle;
  \node[remember path,font=\Large\sf,rounded corners] at (1,1) {label};
  \clip[use path=\tmprotect,reverseclip];
  \node[remember path,font=\Large\sf,shape=diamond] at (2,2) {label 3};
  \clip[use path=\tmprotect,reverseclip];
  \node[remember path,font=\Large\sf,shape=ellipse] at (0,2) {label 2};
  \clip[use path=\tmprotect,reverseclip];
  \fill[gray,opacity=0.2] (-1,0) rectangle (3,4);
  \draw [blue,thick] (-1,4) -- (1,0) -- (3,4);
\end{tikzpicture}
\end{document}

enter image description here


with drawing line in two parts?

enter image description here

\documentclass[tikz, margin=3.141592]{standalone}
\begin{document}
\begin{tikzpicture}
  \fill[blue!40] (0,0) rectangle (2,2);
  \fill[red] plot [smooth] coordinates {(0,2)(1,1)(2,2)} -- cycle;
  \node at (1,1)  (label) {\Large\sf label};
  \draw (1,0) -- (label) (label) -- (1,2);
\end{tikzpicture}
\end{document}