let 命令中是否有极坐标寄存器?

let 命令中是否有极坐标寄存器?

我已经看到我们可以使用\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}

这给出

在此处输入图片描述

可以进一步将其包装成更实用的宏,但现在它本身并不那么冗长。此外,您可以对另一个点执行相同操作,我的意思是它不需要是角度和长度测量的原点。

相关内容