
Предположим, что есть линия от А до В. На расстоянии p% (или p мм/см) от А до В, начиная с А, я хочу «повернуть» ее с помощью радиуса r и угла y относительно направления AB (y=0 соответствует направлению линии AB, 90=90 градусов влево от направления линии AB и т. д.) и поместить там текст.
Следующая команда,
\node at ($(A)!0.5!10:(B)$){x};
наклоняет «x» на 10 градусов к горизонтальной плоскости вокруг A (не на расстоянии 50%) с радиусом 50% от расстояния между A и B, но мне хотелось бы иметь более общую команду, в которой я могу указать радиус и угол относительно направления линии на p% расстояния линии, начиная с A. Возможно ли это? TIA! (Извините за запутанное описание/вопрос!)
решение1
Это последний пример в разделе13.5.4 Синтаксис модификаторов расстояния pgfmanual v 3.1.4делает. Вложив синтаксис, calc
вы можете объединить используемые там директивы в одну.
\documentclass[tikz]{standalone}
\usetikzlibrary{calc}
\begin{document}
\begin{tikzpicture}
\coordinate (a) at (1,0);
\coordinate (b) at (3,1);
\draw (a) -- (b); \path ($ ($ (a)!.5!(b) $)!1cm!90:(b) $) node{x};
\end{tikzpicture}
\end{document}
Если вы хотите использовать эти вещи неоднократно, возможно, имеет смысл определить стиль, в котором дробь, радиус и угол хранятся в ключах pgf.
\documentclass[tikz]{standalone}
\usetikzlibrary{calc}
\begin{document}
\begin{tikzpicture}[between/.style args={#1 and #2}{/tikz/insert path={%
($ ($ (#1)!\pgfkeysvalueof{/tikz/mf67/fraction}!(#2)
$)!\pgfkeysvalueof{/tikz/mf67/radius}!\pgfkeysvalueof{/tikz/mf67/angle}:(#2) $)}},
mf67/.cd,fraction/.initial=.5,radius/.initial=1cm,angle/.initial=90,
]
\coordinate (A) at (1,0);
\coordinate (B) at (3,1);
\draw (A) -- (B);
\path[between=A and B] node{x};
\path[mf67/.cd,fraction=0.2,radius=1.5cm,angle=-30,/tikz/between=A and B] node{y};
\end{tikzpicture}
\end{document}