我目前正在尝试根据图像的东/西/南/东坐标来定义我的坐标,以便无论使用什么图像,我都可以使用相同的坐标系。但是,当我尝试\draw [rotate around={20:\O{}}, name path=a] \O{} -- \E{};
在下面的示例中使用它时,它不会旋转路径。当我以传统方式使用坐标时,(5,0)
它可以很好地旋转。
我真的很想使用这些相对坐标,因为这意味着我每次为新图像做注释时都不必查找边缘。如何才能使该rotate around
功能与相对坐标配合使用?
\documentclass[12pt]{article}
\usepackage{graphicx} % Further formatting of figures
\usepackage{amsmath} % Mathematics
\usepackage{tikz} % Annotated Figures
\usetikzlibrary{intersections} % Detect intersections
\usetikzlibrary{calc} % Calculate distances
\usetikzlibrary{positioning} % Better positioning tools
\usetikzlibrary{arrows.meta} % Better arrowheads
\begin{document}
\begin{figure}[!htb]
\centering
\begin{tikzpicture}
\node[inner sep=0pt] (img) at (0,0)
{\includegraphics[width=\textwidth]{Figures/Airfoil.png}};
%
\def\alph{50};
\def\anglechord{230};
\def\angleradius{95};
\def\O{(img.center)};
\def\E{(img.east)};
\def\W{(img.west)};
\def\N{(img.north)};
\def\S{(img.south)};
\def\SW{(img.south west)};
\def\SE{(img.south east)};
\def\NW{(img.north west)};
\def\NE{(img.north east)};
\def\arrow{{Latex[length=2.8mm]}};
\def\arrowshort{{Latex[length=2mm]}};
% \draw[step=1,black, thick] \SW{} grid \NE{};
\draw[fill] (img.center) circle (0.1);
%
\draw [dashed, very thin, name path=horizontal] \W{} -- \W{};
\draw [dashed, very thin, name path=vertical] \S{} -- \N{};
\path [name path = right] \SE{} -- \NE{};
\draw [rotate around={20:\O{}}, name path=a] \O{} -- \E{};
\end{tikzpicture}
% \caption{caption}
% \label{fig:topconfig}
\end{figure}
\end{document}
答案1
是的,这就是 Ti 的行为钾Z.但是,您已经加载了calc
库,它允许您将符号坐标转换为明确的坐标。
\documentclass[12pt]{article}
\usepackage{amsmath} % Mathematics
\usepackage{tikz} % Annotated Figures
\usetikzlibrary{intersections} % Detect intersections
\usetikzlibrary{calc} % Calculate distances
\usetikzlibrary{positioning} % Better positioning tools
\usetikzlibrary{arrows.meta} % Better arrowheads
\begin{document}
\begin{figure}[!htb]
\centering
\begin{tikzpicture}
\node[inner sep=0pt] (img) at (0,0)
{\includegraphics[width=\textwidth]{example-image-duck}};
%
\def\alph{50};
\def\anglechord{230};
\def\angleradius{95};
\def\O{(img.center)};
\def\E{(img.east)};
\def\W{(img.west)};
\def\N{(img.north)};
\def\S{(img.south)};
\def\SW{(img.south west)};
\def\SE{(img.south east)};
\def\NW{(img.north west)};
\def\NE{(img.north east)};
\def\arrow{{Latex[length=2.8mm]}};
\def\arrowshort{{Latex[length=2mm]}};
% \draw[step=1,black, thick] \SW{} grid \NE{};
\draw[fill] (img.center) circle (0.1);
%
\draw [dashed, very thin, name path=horizontal] \W{} -- \W{};
\draw [dashed, very thin, name path=vertical] \S{} -- \N{};
\path [name path = right] \SE{} -- \NE{};
\draw let \p1=($(img.center)$),\p2=($(img.east)$)
in [rotate around={20:\O}, name path=a,thick,red]
(\x1,\y1)-- (\x2,\y2);
\end{tikzpicture}
% \caption{caption}
% \label{fig:topconfig}
\end{figure}
\end{document}
另一种可能性是使用transform canvas
:
\draw [transform canvas={rotate around={20:\O{}}}, name path=a] \O{} -- \E{};
然而,我想警告您,使用此选项必须非常小心。