如何连接两个圆角圆弧的起点和终点

如何连接两个圆角圆弧的起点和终点

这是mwe;左边是我想要的,但是右边如何正确连接?

\documentclass{文章}
\usepackage{tikz}
\开始{文档}
\开始{tikzpicture}
    \draw [辅助线] (0,0) 网格 (4,4);
    \draw[圆角, fill=cyan!20] (4,2) 圆弧 [起始角度=45, 终止角度=135, 半径=2.828] 圆弧 [起始角度=-131.81, 终止角度=-48.19, 半径=3] -- 循环;
\结束{tikzpicture}
\结束{文档}
 

渲染图像

答案1

这里的问题是,您试图用两个彼此非常接近的点绕过路径上的一个角:

  • 第二个终点arc
  • cycle关闭路径的点。

当我编译你的代码时,我发现了一个可怕的故障:

在此处输入图片描述

我在这里建议一种替代解决方案,该解决方案基于使用辅助路径从中间切割其中一个圆弧来找到中间点:

\documentclass{article}
\usepackage{tikz}
\begin{document}
\usetikzlibrary{ext.topaths.arcthrough}
\begin{tikzpicture}[x=1cm,y=1cm]
    \draw [help lines] (0,0) grid (4,6);
    \draw[rounded corners, fill=cyan!20] 
    (4,2) arc [start angle=45, end angle=135, radius=2.828] 
    arc [start angle=-131.81, end angle=-48.19, radius=3] -- cycle ;
    
    \begin{scope}[yshift=2cm]
      % Auxiliar path to calculate coordinate (A)
      \path   
      (4,2) 
      arc [start angle=45, end angle=135, radius=2.828] 
      node[pos=0.5, circle, fill=red, inner sep=1pt] (A) {} 
      ;

      \draw[rounded corners, fill=cyan!20] 
      (A) 
      arc [start angle=90, end angle=135, radius=2.828] 
      arc [start angle=-131.81, end angle=-48.19, radius=3] 
      arc [start angle=45, end angle=90, radius=2.828] 
      ;
    \end{scope}

\end{tikzpicture}
\end{document}  

在此处输入图片描述

答案2

如图

通过一些数学知识...我尝试为变量使用有用的名称:半径、等边三角形的边(因为初始角度是\asrt=45)和各种角度。如果不清楚,请告诉我。

评论 我更新了代码;有三个变量:半径\r、初始角度\asrt\adif获得圆角所需的校正角度。请注意,例如,rounded corners如果无法正常工作。\adif=3

代码

\documentclass[margin=10pt]{standalone}
\usepackage{tikz}
\usetikzlibrary{calc, math}
\begin{document}

\begin{tikzpicture}[%
  evaluate={%
    \r = 2.8;
    \asrt = 45;
    \aend = 180 -\asrt;
    \adif = 5;
    \s = \r*sin(\asrt);
  }]
  \draw [help lines] (-2, -2) grid (2, 2);
  \draw[blue] (-2.5, 0) -- (2.5, 0);
  
  \draw[red, rounded corners, fill=cyan!20]
  ($(0, -\s) +(\asrt +\adif: \r)$)
  arc (\asrt +\adif:\aend -\adif: \r)
  -- ($(0, \s) +(-\aend +\adif: \r)$)
  arc (-\aend +\adif:-\asrt -\adif: \r) -- cycle;
\end{tikzpicture}
\end{document}

相关内容