Eine Abbildung soll eine Skala zeigen, die teilweise durch einen Rahmen verdeckt wird, der wiederum durch ein Fenster den Blick auf die Skala freigibt. Gedacht ist dabei an einen Messschieber (Schieblehre), dessen weitere Gestaltung hier nicht relevant ist.

Meine Frage dazu ist, wie ich die Skala teilweise verdecken kann, sodass sie nur innerhalb des Fensters sowie außerhalb des Rahmens sichtbar ist.

Grundlegender Code (Skala wird nicht verdeckt):

\documentclass[border=10pt]{standalone}
\usepackage{tikz}

\begin{document}
\begin{tikzpicture}
% Skala (hier in vereinfachter Form)
\foreach \i in {0,...,50} {\draw (\i*1mm,-2mm)--(\i*1mm,3mm);}
% Rahmen, der über der Skala liegt
\draw (6mm,-5mm) rectangle (34mm,15mm);
% Fenster
\draw[rounded corners=5mm] (10mm,0) rectangle (30mm,10mm);
\end{tikzpicture}
\end{document}

Meine Lösungsidee wäre es, die Fläche zwischen der Rahmenlinie und dem Fenster weiß einzufärben, doch wird dadurch auch das gesamte Fenster verdeckt.

\documentclass[border=10pt]{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=newest}
\usetikzlibrary{pgfplots.fillbetween}

\begin{document}
\begin{tikzpicture}
% Skala (hier in vereinfachter Form)
\foreach \i in {0,...,50} {\draw (\i*1mm,-2mm)--(\i*1mm,3mm);}
% Rahmen, der über der Skala liegt
\draw[name path=rahmen] (6mm,-5mm) rectangle (34mm,15mm);
% Fenster
\draw[rounded corners=5mm,name path=fenster] (10mm,0) rectangle (30mm,10mm);
\tikzfillbetween[of=rahmen and fenster] {white};
\end{tikzpicture}
\end{document}

gefragt 07 Sep '21, 20:59

Cletus's gravatar image

Cletus
1.6k75866
Akzeptiert-Rate: 75%

bearbeitet 07 Sep '21, 21:01


Dafür reicht TikZ. Du kannst entweder die even odd rule oder die voreingestellte nonzero rule nutzen.

Beispiel mit even odd rule:

\documentclass[border=10pt]{standalone}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
% Skala (hier in vereinfachter Form)
\foreach \i in {0,...,50} {\draw (\i*1mm,-2mm)--(\i*1mm,3mm);}
% Rahmen mit Fenster
\draw[fill=white,even odd rule]
  % Rahmen, der über der Skala liegt 
  (6mm,-5mm) rectangle (34mm,15mm)
  % Fenster
  {[rounded corners=5mm] (10mm,0) rectangle (30mm,10mm)}
;
\end{tikzpicture}
\end{document}

Beispiel mit voreingestellter nonzero rule:

\documentclass[border=10pt]{standalone}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
% Skala (hier in vereinfachter Form)
\foreach \i in {0,...,50} {\draw (\i*1mm,-2mm)--(\i*1mm,3mm);}
% Rahmen mit Fenster
\draw[fill=white]
  % Rahmen, der über der Skala liegt 
  (6mm,-5mm) -- ++(28mm,0mm) -- ++(0mm,20mm) -- ++(-28mm,0mm) -- cycle
  % Fenster
  {[rounded corners=5mm] (30mm,10mm)-- ++(0mm,-10mm) -- ++(-20mm,0mm) -- +(0mm,10mm) -- cycle}
;
\end{tikzpicture}
\end{document}
Permanenter link

beantwortet 08 Sep '21, 09:18

esdd's gravatar image

esdd
17.8k284257
Akzeptiert-Rate: 62%

Deine Antwort
Vorschau umschalten

Folgen dieser Frage

Per E-Mail:

Wenn sie sich anmelden, kommen Sie für alle Updates hier in Frage

Per RSS:

Antworten

Antworten und Kommentare

Markdown-Grundlagen

  • *kursiv* oder _kursiv_
  • **Fett** oder __Fett__
  • Link:[Text](http://url.com/ "Titel")
  • Bild?![alt Text](/path/img.jpg "Titel")
  • nummerierte Liste: 1. Foo 2. Bar
  • zum Hinzufügen ein Zeilenumbruchs fügen Sie einfach zwei Leerzeichen an die Stelle an der die neue Linie sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Frage-Themen:

×730
×4

gestellte Frage: 07 Sep '21, 20:59

Frage wurde gesehen: 2,897 Mal

zuletzt geändert: 08 Sep '21, 09:18