Positionieren Sie ein Tikz-Draw, das den Gültigkeitsbereich innerhalb einer Achsenumgebung verwendet, mithilfe des Koordinatensystems axis cs

Positionieren Sie ein Tikz-Draw, das den Gültigkeitsbereich innerhalb einer Achsenumgebung verwendet, mithilfe des Koordinatensystems axis cs

Das Problem:Positionieren Sie ein Tikz-Draw, das den Gültigkeitsbereich innerhalb einer Achsenumgebung nutzt, mithilfe der Koordinatensystemachse cs.

Das Problem lässt sich besser durch den folgenden Code erklären, der die derzeit nicht gut implementierte Lösung darstellt.

\documentclass[12pt]{report}
\usepackage[portuges, brazilian]{babel} % Hiphenação em portugues
\usepackage{graphics} % Suporte padrão para gráficos
\usepackage{tikz}
\usetikzlibrary{calc}
\usepackage{pgfplots}
\pgfplotsset{grid=major,compat=1.11}

\begin{document}
\begin{figure}[!htb]
\centering
\begin{tikzpicture}

\pgfmathsetmacro{\Ffactor}{0.6}
\coordinate (car1) at (0.50,1.95);
\begin{scope} [rotate around={-25:(car1)}]
\draw[fill=yellow]     (car1) +  ($\Ffactor*(-0.250, 0.100)$) rectangle + ($\Ffactor*(0.250,-0.100)$);
\draw[fill=black]      (car1) ++ ($\Ffactor*(-0.250, 0.100)$) rectangle + ($\Ffactor*( 0.175, 0.075)$); % rear left wheel
\draw[fill=black]      (car1) ++ ($\Ffactor*( 0.250, 0.100)$) rectangle + ($\Ffactor*(-0.175, 0.075)$); % front left wheel
\draw[fill=black]      (car1) ++ ($\Ffactor*( 0.250,-0.100)$) rectangle + ($\Ffactor*(-0.175,-0.075)$); % front right wheel
\draw[fill=black]      (car1) ++ ($\Ffactor*(-0.250,-0.100)$) rectangle + ($\Ffactor*( 0.175,-0.075)$); % rear right wheel
\end{scope}

\begin{axis}[ ]
%
% SOME CODES
%
\end{axis}

\end{tikzpicture} %
\end{figure}
\end{document}

Aus dem Code ist ersichtlich, dass das erwähnte Tikz-Draw durch den ersten Codeblock angegeben und seine Position durch die Koordinate (car1) festgelegt wird. Anschließend folgt die Achsenumgebung, die in der tatsächlichen Implementierung einige Diagramme enthält. Ich muss das Tikz-Draw über die Koordinate (car1) an derselben Stelle platzieren, die irgendwie mit den Diagrammen aus der Achsenumgebung verknüpft ist. Derzeit brauche ich mit einem Versuch-und-Irrtum-Ansatz ziemlich lange, um das Tikz-Draw an der gewünschten Stelle zu platzieren.

Ich dachte, dass es möglich wäre, den Codeblock, der mit dem Tikz-Draw zusammenhängt, in die Achsenumgebung zu setzen und dieAchse csKoordinatenrahmen zum Einstellen der Tikz-Draw-Position wie unten gezeigt

\begin{tikzpicture}
\begin{axis}[ ]
%
% SOME CODES
%
\pgfmathsetmacro{\Ffactor}{0.6}
\coordinate (car1) at (axis cs: 0.50,1.95);  <----------
\begin{scope} [rotate around={-25:(car1)}]
\draw[fill=yellow]     (car1) +  ($\Ffactor*(-0.250, 0.100)$) rectangle + ($\Ffactor*(0.250,-0.100)$);
\draw[fill=black]      (car1) ++ ($\Ffactor*(-0.250, 0.100)$) rectangle + ($\Ffactor*( 0.175, 0.075)$); % rear left wheel
\draw[fill=black]      (car1) ++ ($\Ffactor*( 0.250, 0.100)$) rectangle + ($\Ffactor*(-0.175, 0.075)$); % front left wheel
\draw[fill=black]      (car1) ++ ($\Ffactor*( 0.250,-0.100)$) rectangle + ($\Ffactor*(-0.175,-0.075)$); % front right wheel
\draw[fill=black]      (car1) ++ ($\Ffactor*(-0.250,-0.100)$) rectangle + ($\Ffactor*( 0.175,-0.075)$); % rear right wheel
\end{scope}
%
% SOME CODE
%
\end{axis}

\end{tikzpicture} %

aber zu meiner Überraschung scheint es eine gewisse Inkompatibilität zwischen der Achse und der Scope-Umgebung zu geben, da diese neue Lösung die Fehler abruft:

Paket-PGF-Fehler: Keine Form mit dem Namen „car1“ bekannt. \begin{scope} [rotate around={-25:(car1)}] Paket-PGF-Fehler: Keine Form mit dem Namen „car1“ bekannt. \begin{scope} [rotate around={-25:(car1)}]

Daher lautet meine Frage, wie sich dieses Problem umgehen lässt.

Danke.

Antwort1

Setzen Sie das \coordinatein das axisund das scopenach \end{axis}.

Bildbeschreibung hier eingeben

\documentclass[12pt]{report}
\usepackage[portuges, brazilian]{babel} % Hiphenação em portugues
\usepackage{graphicx} % Suporte padrão para gráficos
\usepackage{tikz}
\usetikzlibrary{calc}
\usepackage{pgfplots}
\pgfplotsset{grid=major,compat=1.11}

\begin{document}
\begin{figure}[!htb]
\centering
\begin{tikzpicture}
\pgfmathsetmacro{\Ffactor}{0.6}
\begin{axis}[ ]
%
\coordinate (car1) at (0.5,0.5); % axis cs is default since you have compat=1.11
\addplot coordinates {(0,0)}; % need to have something, or it doesn't work
\end{axis}

\begin{scope} [rotate around={-25:(car1)}]
\draw[fill=yellow]     (car1) +  ($\Ffactor*(-0.250, 0.100)$) rectangle + ($\Ffactor*(0.250,-0.100)$);
\draw[fill=black]      (car1) ++ ($\Ffactor*(-0.250, 0.100)$) rectangle + ($\Ffactor*( 0.175, 0.075)$); % rear left wheel
\draw[fill=black]      (car1) ++ ($\Ffactor*( 0.250, 0.100)$) rectangle + ($\Ffactor*(-0.175, 0.075)$); % front left wheel
\draw[fill=black]      (car1) ++ ($\Ffactor*( 0.250,-0.100)$) rectangle + ($\Ffactor*(-0.175,-0.075)$); % front right wheel
\draw[fill=black]      (car1) ++ ($\Ffactor*(-0.250,-0.100)$) rectangle + ($\Ffactor*( 0.175,-0.075)$); % rear right wheel
\end{scope}
%
\end{tikzpicture} %
\end{figure}
\end{document}

verwandte Informationen