Ich möchte, dass die Abbildung etwa so aussieht:
Die von mir erstellte Figur entspricht jedoch nicht dieser Beschreibung hier sind meine Versuche
\documentclass[]{article}
\usepackage[left=.5cm,right=.5cm,top=3cm,bottom=1cm]{geometry}
\usepackage{tikz}
\usepackage{tkz-euclide}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{amsfonts}
\usepackage{esvect}
\usepackage{ifthen}
\usepackage{stmaryrd}
\usepackage{xspace}
\usepackage{mathtools}
\newcommand{\lm}[2]{\displaystyle{\lim_{{#1}\to {#2}}}}
\begin{document}
\begin{center}
\begin{tikzpicture}
\node[rectangle, draw=brown, fill=brown!75, minimum height=1cm, minimum width=5cm, rounded corners] (1) {$\lm{x}{\infty}f(x) = a$};
\node[rectangle, draw=brown, fill=brown!75, minimum height=1cm, minimum width=5cm, rounded corners, right= 1cm of 1] (2) {$\lm{x}{\infty}f(x) = \infty$};
\node[rectangle, draw=brown, fill=brown!75, minimum height=1cm, minimum width=5cm, rounded corners, right= 1cm of 2] (3) {$\lm{x}{a}f(x) = a$};
\node[rectangle, draw=cyan, fill=cyan!50, minimum height=1cm, minimum width=5cm, rounded corners, below left= 1cm and 0cm of 2] (4) {$\lm{x}{\infty}\left[f(x) - (ax - b)\right] = 0$};
\node[rectangle, draw=cyan, fill=cyan!50, minimum height=1cm, minimum width=4cm, rounded corners, right= 1mm of 4] (5) {$\lm{x}{\infty}\dfrac{f(x)}{x} = a \ ; \ a \neq 0$};
\node[rectangle, draw=cyan, fill=cyan!50, minimum height=1cm, minimum width=3cm, rounded corners, right= 1mm of 5] (6) {$\lm{x}{\infty}\dfrac{f(x)}{x} = \infty$};
\node[rectangle, draw=cyan, fill=cyan!50, minimum height=1cm, minimum width=3cm, rounded corners, right= 1mm of 6] (7) {$\lm{x}{\infty}\dfrac{f(x)}{x} = 0$};
\node[rectangle, draw=cyan, fill=cyan!50, minimum height=1cm, minimum width=3cm, rounded corners, below left= 1cm and -2cm of 5] (8) {$\lm{x}{\infty}\left[f(x) - ax\right] = b$};
\node[rectangle, draw=cyan, fill=cyan!50, minimum height=1cm, minimum width=3cm, rounded corners, right= 1mm of 8] (9) {$\lm{x}{\infty}\left[f(x) - ax\right] = \infty$};
\node[rectangle, draw=green, fill=green!50, minimum height=5cm, rounded corners, below left = 1cm and 2cm of 8] (10) {
\begin{minipage}{2.5cm}
$(C_f)$ admet une \\ asymptote horizontale \\ d'équation $y=a$ \\ au voisinage de $\infty$
\end{minipage}};
\node[rectangle, draw=green, fill=green!50, minimum height=5cm, rounded corners, right = 1mm of 10] (11) {
\begin{minipage}{2.5cm}
$(C_f)$ admet une \\ asymptote oblique \\ d'équation $y=ax+b$ \\ au voisinage de $\infty$
\end{minipage}};
\node[rectangle, draw=green, fill=green!50, minimum height=5cm, rounded corners, right = 1mm of 11] (12) {
\begin{minipage}{2.5cm}
$(C_f)$ admet une \\ branche parabolique \\ de direction la droite \\ d'équation $y=ax$ \\ au voisinage de $\infty$
\end{minipage}};
\node[rectangle, draw=green, fill=green!50, minimum height=5cm, rounded corners, right = 1mm of 12] (13) {
\begin{minipage}{2.5cm}
$(C_f)$ admet une \\ branche parabolique \\ de direction l'axe des ordonnées \\ d'équation $y=ax$ \\ au voisinage de $\infty$
\end{minipage}};
\node[rectangle, draw=green, fill=green!50, minimum height=5cm, rounded corners, right = 1mm of 13] (14) {
\begin{minipage}{2.5cm}
$(C_f)$ admet une \\ branche parabolique \\ de direction l'axe des abscisses \\ d'équation $y=ax$ \\ au voisinage de $\infty$
\end{minipage}};
\node[rectangle, draw=green, fill=green!50, minimum height=5cm, rounded corners, right = 1mm of 14] (15) {
\begin{minipage}{2.5cm}
$(C_f)$ admet une \\ asymptote verticale \\ d'équation $x=a$
\end{minipage}};
\draw[blue, very thick,-latex] ([xshift=-2cm]1.south) -- ([xshift=-1cm] 10.north);
\draw[blue, very thick,-latex] ([xshift=2cm]3.south) -- ([xshift=1cm] 15.north);
\draw[blue, very thick,-latex] ([xshift=-1mm]2.south) -- (4.north);
\draw[blue, very thick,-latex] (2.south) -- (5.north);
\draw[blue, very thick,-latex] ([xshift=1mm]2.south) -- (6.north);
\draw[blue, very thick,-latex] ([xshift=3mm]2.south) -- (7.north);
\draw[blue, very thick,-latex] (5.south) -- (8.north);
\draw[blue, very thick,-latex] (5.south) -- (9.north);
\draw[blue, very thick,-latex] (4.south) -- (11.north);
\draw[blue, very thick,-latex] (8.south) -- (11.north);
\draw[blue, very thick,-latex] (9.south) -- (12.north);
\draw[blue, very thick,-latex] (6.south) -- (13.north);
\draw[blue, very thick,-latex] (7.south) -- (14.north);
\end{tikzpicture}
\end{center}
\end{document}
Antwort1
Hier ist eine Möglichkeit, dies zu tun, indem Sie Ihren Ansatz so weit wie möglich wiederverwenden. Für die Platzierung gibt es jedoch bessere und konsistentere Alternativen. Zumindest ist es ein besserer Ausgangspunkt.
Bitte beachten Sie die Hinweise flow of changes
aus meinem Kommentar:
% ~~~ REFACTORING ~~~~~~~~~~~~
% * commented out unsused packages
% * defining styles to simplify code (you can still remove or vary all those \\)
% * adjusted code indenting and formatting for better visibility of what's going on
% * tried \def vs. \newcommand, which seems to be a bit faster during compile
% (Tikz seems to prefer TeX-notation here)
% * demonstrated refactoring for the connectors: (2) -- (4), (5) -- (8)
The styles
in Bezug auf Farben, Größen usw. könnten weiter überarbeitet werden, sind aber für den Moment gut genug. Gleiches gilt für die Verschiebungen.
Please look up
alle diese Details parallel in derpgf-handbuch.
For the brown row
Ich habe Ihre Vorgehensweise übernommen und die Verschiebung vereinfacht, also Ihr Optionsrecht (das, wie angegeben, einen Fehler verursacht hat) ersetzt.
For the other ones
Der Ansatz ist anders:
- Platziere den ersten (ganz linken)
\node
an einer absoluten Position - ordne sie von Ost nach West mit etwas X-Verschiebung dazwischen an, definiert in
XSBL
usw.
The text in the green boxes
kann in Tikz besser über text width=
und gesteuert werden align=
, siehepgf-handbuch. Sie \\
sind bei meinem Ansatz nicht mehr erforderlich, Sie können sie jedoch weiterhin zur besseren Kontrolle des Textflusses verwenden.
The changes for the connectors
Ich habe es für die Linien (2) -- (4)
und demonstriert und (5) -- (8)
Ihnen die detaillierten Anpassungen überlassen:
- der erste ist unkompliziert,
- Die zweite erfordert einen Zwischenpunkt, der in relativen Koordinaten angegeben wird
- ! die Verschiebung nach unten UND der Eckenradius können zu Artefakten führen !
The key syntax here
verwendet die Polarkoordinaten <node name>.<angle>
. Beispielsweise (2.185)
nimmt Knoten (2) einen Strahl vom Mittelpunkt und Winkel dieses Knotens 185deg
(oder etwas weiter als West, in nautischen Begriffen), bis er die Grenze des Knotens schneidet. Auf diese Weise können Sie Start- und Endpunkte beliebig verschieben.
Lots is left for you
in Bezug auf Anpassungen im Wesentlichen:
- die Verschiebungen in
XSB
undXSBL
XSG
- die Polarwinkel für jeden Knoten
- möglicherweise die absoluten Positionen der linken Knoten
Putting an arrow midway
ist möglich, erfordert aber einige Verzierungen, was die Kompilierungszeit meist erhöht. Brauchen Sie das wirklich?
Finally
Es ist immer eine gute Idee, von Anfang an sauber zu programmieren und so oft wie möglich Refactorings durchzuführen.
% ~~~ REFACTORING ~~~~~~~~~~~~
% * commented out unsused packages
% * defining styles to simplify code (you can still remove or vary all those \\)
% * adjusted code indenting and formatting for better visibility of what's going on
% * tried \def vs. \newcommand, which seems to be a bit faster during compile
% (Tikz seems to prefer TeX-notation here)
% * demonstrated refactoring for the connectors: (2) -- (4), (5) -- (8)
\documentclass[]{article}
\usepackage[left=.5cm,right=.5cm,top=3cm,bottom=1cm]{geometry}
\usepackage{tikz}
\usetikzlibrary{arrows.meta} % <<<
%\usepackage{tkz-euclide}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{amsfonts}
%\usepackage{esvect}
%\usepackage{ifthen}
%\usepackage{stmaryrd}
%\usepackage{xspace}
%\usepackage{mathtools}
%\newcommand{\lm}[2]{\displaystyle{\lim_{{#1}\to {#2}}}}
\def\lm#1#2{\displaystyle{\lim_{{#1}\to {#2}}}}
\begin{document}
\begin{center}
\begin{tikzpicture}[
DIM/.style={ minimum height=1cm, minimum width=5cm, rounded corners},
A/.style={draw=brown, fill=brown!75,DIM},
B/.style={draw=cyan, fill=cyan!50, DIM,minimum width=3cm},
C/.style={draw=green, fill=green!50, minimum height=5cm,
rounded corners,align=center,text width=25mm},
XSB/.style ={xshift=73mm},
XSBL/.style={anchor=west,xshift=2mm},
XSG/.style ={anchor=west,xshift=4mm},
ARR/.style ={blue, very thick,->,rounded corners=16pt},
> = {Stealth},
]
% ~~~ brown row ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
\node[A,anchor=west] (1) at (0,0) {$\lm{x}{\infty}f(x) = a$};
\node[A] (2) at ([XSB] 1) {$\lm{x}{\infty}f(x) = \infty$};
\node[A] (3) at ([XSB] 2) {$\lm{x}{a}f(x) = a$};
% ~~~ 1st blue row ~~~~~~~~~~~~~~~~~~~~~~~~~
\node[B,anchor=west] (4) at (2,-3) {$\lm{x}{\infty}\left[f(x) - (ax - b)\right] = 0$};
\node[B,XSBL] (5) at (4.east) {$\lm{x}{\infty}\dfrac{f(x)}{x} = a \ ; \ a \neq 0$};
\node[B,XSBL] (6) at (5.east) {$\lm{x}{\infty}\dfrac{f(x)}{x} = \infty$};
\node[B,XSBL] (7) at (6.east) {$\lm{x}{\infty}\dfrac{f(x)}{x} = 0$};
% ~~~ 2nd blue row ~~~~~~~~~~~~~
\node[B,anchor=west] (8) at (4,-6) {$\lm{x}{\infty}\left[f(x) - ax\right] = b$};
\node[B,XSBL] (9) at (8.east) {$\lm{x}{\infty}\left[f(x) - ax\right] = \infty$};
% ~~~ green row ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
\node[C,anchor=west] (10) at (0,-12){
$(C_f)$ admet une asymptote horizontale
d'équation $y=a$ \\ au voisinage de $\infty$};
\node[C,XSG] (11) at (10.east) {
$(C_f)$ admet une \\ asymptote oblique \\
d'équation $y=ax+b$ \\ au voisinage de $\infty$};
\node[C,XSG] (12) at (11.east) {
$(C_f)$ admet une \\ branche parabolique \\
de direction la droite \\ d'équation $y=ax$ \\
au voisinage de $\infty$};
\node[C,XSG] (13) at (12.east) {
$(C_f)$ admet une \\ branche parabolique \\
de direction l'axe des ordonnées \\ d'équation
$y=ax$ \\ au voisinage de $\infty$};
\node[C,XSG] (14) at (13.east) {
$(C_f)$ admet une \\ branche parabolique \\
de direction l'axe des abscisses \\
d'équation $y=ax$ \\ au voisinage de $\infty$};
\node[C,XSG] (15) at (14.east) {
$(C_f)$ admet une \\ asymptote verticale
\\ d'équation $x=a$};
% % ~~~ connectors ~~~~~~~~~~~~~~~~
\draw[ARR] ([xshift=-2cm]1.south) -- ([xshift=-1cm] 10.north);
\draw[ARR] ([xshift=2cm]3.south) -- ([xshift=1cm] 15.north);
% ~~~ TO DO: rework all other \draw's like this one: ~~~~~~~~~
\draw[ARR] (2.185) -| (4.20);
\draw[blue, very thick,-latex] (2.south) -- (5.north);
% \draw[blue, very thick,-latex] ([xshift=1mm]2.south) -- (6.north);
% \draw[blue, very thick,-latex] ([xshift=3mm]2.south) -- (7.north);
\draw[ARR] (5.230) -- ++(0,-.6) -| (8.north);
% \draw[blue, very thick,-latex] (5.south) -- (9.north);
% \draw[blue, very thick,-latex] (4.south) -- (11.north);
% \draw[blue, very thick,-latex] (8.south) -- (11.north);
% \draw[blue, very thick,-latex] (9.south) -- (12.north);
% \draw[blue, very thick,-latex] (6.south) -- (13.north);
% \draw[blue, very thick,-latex] (7.south) -- (14.north);
\end{tikzpicture}
\end{center}
\end{document}