tikz 绘制圆段

tikz 绘制圆段

如果我有圆心和圆上的两个点,如何使用 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

相关内容