我正在使用以下代码。我是否可以\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}