Tikzpicture:如何从当前点绘制一条以 x 轴为终点的给定长度的线?

Tikzpicture:如何从当前点绘制一条以 x 轴为终点的给定长度的线?

我正在使用以下代码。我是否可以\draw (0,0) -- (0,1) -- ++(-30:2);以某种方式修改该部分以绘制给定长度(大于 1 的任何长度,例如 3 个单位)的线段,使其(0,1)终止于正 x 轴?(无需使用勾股定理手动计算 x 轴上的端点。)

\documentclass[preview]{standalone}
\usepackage{cmbright}
\usepackage{tikz}
\begin{document}
 \begin{tikzpicture}[scale=3]
 \draw[->] (-0.25,0) -- (2.25,0) coordinate (x axis);
     \foreach \x/\xtext in {0, 0.5/\frac{1}{2}, 1, 1.5/\frac{3}{2}, 2}
   \draw (\x cm,1pt) -- (\x cm,-1pt) node[anchor=north,fill=white] {$\xtext$};
     \draw (0,0) -- (0,1) -- ++(-30:2);
 \end{tikzpicture}
\end{document}

上述代码的结果:

上述代码的结果

答案1

角度计算可以在坐标系中完成:

\draw (0,0) -- (0,1) -- ++({-asin(1/2)}:2);

需要使用括号,否则解析器会将的右括号asin与坐标的右括号混淆。

\documentclass[border=5mm]{standalone}
\usepackage{cmbright}
\usepackage{tikz}
\begin{document}
 \begin{tikzpicture}[scale=3]
 \draw[->] (-0.25,0) -- (2.25,0) coordinate (x axis);
     \foreach \x/\xtext in {0, 0.5/\frac{1}{2}, 1, 1.5/\frac{3}{2}, 2}
   \draw (\x cm,1pt) -- (\x cm,-1pt) node[anchor=north,fill=white] {$\xtext$};
     \draw (0,0) -- (0,1) -- ++({-asin(1/2)}:2);
 \end{tikzpicture}
\end{document}

答案2

这里,使用该库构造了尺子和圆规intersections

截屏

\documentclass[preview]{standalone}
\usepackage{cmbright}
\usepackage{tikz}
\usetikzlibrary{intersections}
\begin{document}
 \begin{tikzpicture}[scale=3]
 \draw[->,name path=abscisses] (-0.25,0) -- (2.25,0) coordinate (x axis);
     \foreach \x/\xtext in {0, 0.5/\frac{1}{2}, 1, 1.5/\frac{3}{2}, 2}
            \draw (\x cm,1pt) -- (\x cm,-1pt) node[anchor=north,fill=white] {$\xtext$};
     %\draw[blue] (0,0) -- (0,1) -- ++(-30:2);
     \path[name path=cercle] (0,1) circle (2cm);
     \path [name intersections={of =cercle and abscisses}];
     \draw (0,0)--(0,1)--(intersection-1);
 \end{tikzpicture}
\end{document}

相关内容