如果我有圆心和圆上的两个点,如何使用 tikz 绘制圆弧段?请参见以下示例
更新:我尝试完成类似的事情。可以使用以下方法完成Tikz:连接圆上的点,但我更喜欢某种 tikz 解决方案,因为这允许我使用 tikz 样式。
答案1
使用calc
库和运算符let
,您可以从现有的三个点(中心和两个圆点)in
计算半径、初始角度和最终角度,然后将计算出的数字用作路径的一部分。以下 MWE 显示了如何:arc
\documentclass{article}
\usepackage{tikz}
\begin{document}
\thispagestyle{empty}
\usetikzlibrary{calc}
\begin{tikzpicture}
\coordinate (center) at (3,3);
\coordinate (1) at (0,0);
\coordinate (2) at (5, .5);
\coordinate (3) at ($(center) +(30:2)$);
\coordinate (4) at ($(center) +(70:2)$);
\coordinate (5) at (0,6);
\draw[blue, dotted]
let \p1 = ($(3)-(center)$),
\n0 = {veclen(\x1,\y1)}
in (center) circle(\n0);
\filldraw[draw=black, fill=green, fill opacity=0.3]
let \p1 = ($(3) - (center)$),
\p2 = ($(4) - (center)$),
\n0 = {veclen(\x1,\y1)}, % Radius
\n1 = {atan(\y1/\x1)+180*(\x1<0)}, % initial angle
\n2 = {atan(\y2/\x2)+180*(\x2<0)} % Final angle
in
(1) -- (2) -- (3) arc(\n1:\n2:\n0) -- (5) -- cycle;
\foreach \dot in {1,2,3,4,5,center} {
\fill (\dot) circle(2pt);
\node[above] at (\dot) {\dot};
}
\end{tikzpicture}
\end{document}
如果你有 pgf/tikz v2.10,你可以使用atan2(x,y)
上面的表达式来计算初始角度和最终角度(感谢qrrbrbirlbel建议),即:
\n1 = {atan2(\x1,\y1)}, % initial angle
\n2 = {atan2(\x2,\y2)} % Final angle