Duplikat zu: Tikz: zu große Bildhöhe durch Kontrollpunkt


alt text

In folgendem Beispiel konstruiere ich einen Dreieckspunkt.

Die großen Kreise erzeugen viel Whitespace, auch dann, wenn man sie nicht anzeigt.

Gibt es eine einfache möglichkeit das zu verhindern. Für einen clip-Rahmen (\clip (*) rectangle (*);) müsste ich mir immer Koordinaten überlegen.

Öffne in Overleaf
\documentclass[margin=5mm, tikz]{standalone}
\usepackage{tikz}
\usetikzlibrary{calc}
\usetikzlibrary{intersections}

\begin{document}

\pgfmathsetmacro{\m}{2} % 
\pgfmathsetmacro{\a}{\m*2.1} % 
\pgfmathsetmacro{\b}{\m*2.5} % 
\pgfmathsetmacro{\c}{\m*sqrt((\a^2+\b^2)/5)} %

\pgfdeclarelayer{background}
\pgfdeclarelayer{foreground}
\pgfsetlayers{background,main,foreground}
\begin{tikzpicture}[font=\footnotesize,
background rectangle/.style={draw=none, fill=black!1, rounded corners}, show background rectangle,
Punkt/.style 2 args={  label={[#1]:$#2$}   },  
]

% Koordinaten I
\begin{pgfonlayer}{foreground}
\coordinate[Punkt={below}{A}] (A) at (0,0); 
\coordinate[Punkt={below}{B}] (B) at (\c,0); 
\end{pgfonlayer}

\path[name path=kreisA] (A) circle[radius=\b];
\path[name path=kreisB, draw=none] (B) circle[radius=\a];

\path[name intersections={of=kreisA and kreisB, name=C}] ;

\draw (A) -- (B) -- (C-1) coordinate[Punkt={above}{C}] (C)--cycle;

% zum Anzeigen
\path[name path=kreisB, draw=red] (B) circle[radius=\a] node[red] {erzeugt Whitespace};

%% Strecken
%\begin{scope}[anchor=north]
%\foreach[count=\y from 0] \x in {a,b,c}
%\draw[|-|, yshift=-\y cm, transform canvas={shift=(A|-C), xshift=-\c cm}] (0,0) -- (\csname \x \endcsname,0) node[midway, above]{$\x$};
%\end{scope}
%
%
%% Punkte
%\foreach \P in {}
%\draw[fill=black!1] (\P) circle (1.5pt);

\end{tikzpicture}

\end{document}

gefragt 07 Mär '19, 22:18

cis's gravatar image

cis
9.5k78452491
Akzeptiert-Rate: 29%

geschlossen 08 Mär '19, 15:56

esdd's gravatar image

esdd
17.7k254256

Die Frage wurde aus folgenden Grund "Duplikat einer anderen Frage" geschlossen esdd 08 Mär '19, 15:56


Setze die Option overlay für die Pfade, die keinen Beitrag zur Bounding Box leisten sollen:

Öffne in Overleaf
\documentclass[margin=5mm, tikz]{standalone}
\usetikzlibrary{calc}
\usetikzlibrary{intersections}
\begin{document}

\pgfmathsetmacro{\m}{2} % 
\pgfmathsetmacro{\a}{\m*2.1} % 
\pgfmathsetmacro{\b}{\m*2.5} % 
\pgfmathsetmacro{\c}{\m*sqrt((\a^2+\b^2)/5)} %

\pgfdeclarelayer{background}
\pgfdeclarelayer{foreground}
\pgfsetlayers{background,main,foreground}
\begin{tikzpicture}[
font=\footnotesize,
Punkt/.style 2 args={  label={[#1]:$#2$}   },  
]

% Koordinaten I
\begin{pgfonlayer}{foreground}
\coordinate[Punkt={below}{A}] (A) at (0,0); 
\coordinate[Punkt={below}{B}] (B) at (\c,0); 
\end{pgfonlayer}

\path[name path=kreisA,overlay] (A) circle[radius=\b];
\path[name path=kreisB,overlay] (B) circle[radius=\a];
\path[name intersections={of=kreisA and kreisB, name=C}] ;
\draw (A) -- (B) -- (C-1) coordinate[Punkt={above}{C}] (C)--cycle;

% zum Anzeigen
\path[name path=kreisB, draw=red,overlay] (B) circle[radius=\a] node[red] {erzeugt keinen Whitespace};
\end{tikzpicture}
\end{document}

Ergebnis:

alt text

Man kann auch einen eigenen Stil für das Verstecken der Kreise und anderer Linien definieren. Das würde es ermöglichen, diese Linien durch Änderung an nur einer Stelle doch einfach anzuzeigen.

Permanenter link

beantwortet 08 Mär '19, 10:09

esdd's gravatar image

esdd
17.7k254256
Akzeptiert-Rate: 62%

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:

×728

gestellte Frage: 07 Mär '19, 22:18

Frage wurde gesehen: 3,627 Mal

zuletzt geändert: 08 Mär '19, 15:56