(如果这个问题之前有人问过,我很抱歉,很难相信它没有被问过,但我找不到任何相关资料。)我想画一条线穿过两个可以指定宽度的点。这条线应该从第一个给定点向第二个点延伸,然后继续延伸直到给定的长度。我希望能够输入类似的东西\draw[length=5] (0,0)--(1,2);
来实现这一点。
以下是我目前所掌握的信息:
\documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\draw (0,0)--(1,2);
\end{tikzpicture}
\end{document}
同样,问题在于它画了一条终止于两个给定点的线,但我只希望它终止于一个点(第一个点),并继续延伸直到在另一端用完指定的长度。我知道这可以通过始终使用一些数学知识手动计算坐标来实现,但这太乏味了,一定有更好的方法!提前致谢。
答案1
如果知道角度,则可以使用相对极坐标,例如\draw (1,1) -- +(30:2cm);
。+
极坐标前的 表示(1,1)
应使用前一个坐标( )作为原点。如果使用++(30:2cm)
,当前点也会更新,因此如果向路径添加另一个相对坐标,则该坐标的原点将是第一段的终点。
如果有两个点,则可以使用calc
库的功能。($(a)!3cm!(b)$)
是距离 3cm 的坐标,位于通过和 的a
线上。因此,从到该点画一条线。a
b
\draw (a) -- ($(a)!3cm!(b)$);
a
\documentclass[border=5mm]{standalone}
\usepackage{tikz}
\usetikzlibrary{calc}
\begin{document}
\begin{tikzpicture}
\draw (0,0) grid (4,3);
\node[inner sep=1pt,fill, label=above left:a] (a) at (1,1) {};
\node[inner sep=1pt,fill, label=above left:b] (b) at (3,2) {};
\draw [red] (a) -- +(30:2cm);
\draw [blue] (a) -- ($(a)!3cm!(b)$);
\end{tikzpicture}
\end{document}