Проблема:Разместите tikz-draw, использующий область видимости, внутри осевой среды, используя систему координат оси cs.
Проблему лучше объяснить перед следующим кодом, который в настоящее время не является хорошим решением.
\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}
Из кода можно увидеть, что упомянутый tikz-draw указан первым блоком кода, а его положение задано координатой (car1). Последовательно, есть среда axis, которая имеет, в реальной реализации, некоторые графики. Мне нужно разместить tikz-draw через координату (car1) в том же месте, которое каким-то образом связано с графиками из среды axis. В настоящее время, с подходом проб и ошибок, я трачу довольно много времени, чтобы разместить tikz-draw в нужном месте.
Я подумал, что было бы возможно поместить этот блок кода, связанный с tikz-draw, внутрь среды axis и использоватьось csКоординатная рамка для установки позиции tikz-draw, как показано ниже
\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} %
но, к моему удивлению, это выглядит как некоторая несовместимость между осью и средой области видимости, потому что это новое решение извлекает ошибки:
Ошибка пакета pgf: неизвестна форма с именем car1. \begin{scope} [rotate around={-25:(car1)}] Ошибка пакета pgf: неизвестна форма с именем car1. \begin{scope} [rotate around={-25:(car1)}]
Поэтому мой вопрос заключается в том, как обойти эту проблему.
Спасибо.
решение1
Поместите \coordinate
внутри axis
, а scope
после \end{axis}
.
\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}