![文本放置在与线有一定距离、给定半径和角度的位置](https://linux22.com/image/400530/%E6%96%87%E6%9C%AC%E6%94%BE%E7%BD%AE%E5%9C%A8%E4%B8%8E%E7%BA%BF%E6%9C%89%E4%B8%80%E5%AE%9A%E8%B7%9D%E7%A6%BB%E3%80%81%E7%BB%99%E5%AE%9A%E5%8D%8A%E5%BE%84%E5%92%8C%E8%A7%92%E5%BA%A6%E7%9A%84%E4%BD%8D%E7%BD%AE.png)
假设有一条从 A 到 B 的线。在从 A 到 B 的距离的 p%(或 p 毫米/厘米)处,从 A 出发,我想使用半径 r 和相对于 AB 方向的角度 y“转动”(y=0 表示在线 AB 方向上,90=在线 AB 方向左侧 90 度,等等)并在那里放置文本。
以下命令
\node at ($(A)!0.5!10:(B)$){x};
将“x”与水平面成 10 度角,围绕 A(不是 50% 距离处),半径为 A 和 B 之间距离的 50%,但我喜欢使用更通用的命令,在其中我可以指定半径和角度,相对于从 A 开始的线距离 p% 处的线方向。这可能吗?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}