
Я видел, что мы можем использовать \x1
и \y1
для доступа к декартовым координатам точки регистра, \p1
объявленного в let
.
Есть ли способ получить доступ к полярным координатам (например, \a1
для угла и \r1
расстояния) точки \p1
?
Если нет, то как лучше всего это сделать:
\draw let \p1=(35:1cm) in (\a1+30,\r1) -- (\a1-30,2*\r1);
решение1
Я не знаю, существует ли для этого прямая регистрация (и мне бы тоже хотелось узнать), но вы можете получить доступ к этой информации, приложив немного больше усилий:
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{calc}
\begin{document}
\begin{tikzpicture}
\draw[style=help lines] (0,0) grid[step=1cm] (3,2);
\draw[red,ultra thick] (0,0) -- (35:3cm);
\draw let \p1=(35:3cm), \n1 = {veclen(\x1,\y1)},\n2 = {atan2(\x1,\y1)} in (0,0) -- (\n2:\n1);
\draw let \p1=(35:1cm), \n1 = {veclen(\x1,\y1)},\n2 = {atan2(\x1,\y1)} in (0,0) -- (\n2+30:2*\n1);
\end{tikzpicture}
\end{document}
Это дает
Можно еще больше обернуть это в более прагматичный макрос, но он сам по себе не такой многословный. Более того, вы можете сделать то же самое относительно другой точки, я имею в виду, что это не обязательно должно быть начало отсчета, от которого измеряются угол и длина.