Как извлечь часть стороны правильного многоугольника?

Как извлечь часть стороны правильного многоугольника?

Есть ли лучший способ нарисовать следующую картинку без сегмента ab? Я использовал следующий код

\documentclass[tikz,border=5]{standalone}
\usetikzlibrary{shapes.geometric}
\begin{document}
\begin{tikzpicture}[scale=5.5]
    \node[regular polygon, regular polygon sides=6, minimum size=10cm, rounded corners, draw] at (0,0) {};
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Erase ab segment
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    \draw[ultra thick, white](-.377,.787025) -- (.377,.787025);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   \draw(.377,.787025)arc(276:90:.06);
  \draw(-.377,.787025)arc(-96:90:.06);
   \def\mypath{(-.06,-.98) -- (-.06,-.95) arc (180:0:.06cm) -- (.06,-.98)}
    \foreach \t in {0,120,240} {\draw   [rotate=\t] \mypath;}
\def\mypath{(0,.98) -- (0,.98) arc (90:55.5:.98cm)}% -- (0,0)}
\draw   [rotate=56.5] \mypath;
\def\mypath{(0,.98) -- (0,.98) arc (90:55.5:.98cm)}% -- (0,0)}
\draw   [rotate=-22] \mypath;
\def\mypath{(0,.98) -- (0,.98) arc (90:-23:.98cm)}% -- (0,0)}
\draw   [rotate=176.5] \mypath;
\def\mypath{(0,.98) -- (0,.98) arc (90:-23:.98cm)}% -- (0,0)}
\draw   [rotate=296.5] \mypath;
\end{tikzpicture}
\end{document}

введите описание изображения здесь

решение1

Просто замените узел на правильный путь. Вы знаете, что диаметр описанной окружности шестиугольника составляет 10 см без масштабирования (потому что узлы не масштабируются при использовании опции scale). Таким образом, масштабированный радиус описанной окружности шестиугольника составляет 5 см / 5,5.

Вы также знаете координаты, где начинаются и заканчиваются два полукруга вверху. Таким образом, вы можете легко воссоздать контур формы узла, используя \drawполярные координаты.

В следующем примере кода я немного упростил ваш код, а также обновил его до текущего синтаксиса.

\documentclass[tikz,border=5]{standalone}
%\usetikzlibrary{shapes.geometric}

\begin{document}
\begin{tikzpicture}[scale=5.5]
    % \node[regular polygon, regular polygon sides=6, minimum size=10cm, rounded corners, draw] at (0,0) {};
    \draw[rounded corners] (-.377,.787025) -- (120:{5/5.5}) -- (180:{5/5.5}) -- (240:{5/5.5}) -- (300:{5/5.5}) -- (360:{5/5.5}) -- (60:{5/5.5}) -- (.377,.787025);
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    % Erase ab segment
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    % \draw[ultra thick, white](-.377,.787025) -- (.377,.787025);
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    \draw(.377,.787025) arc[start angle=276, end angle=90, radius=.06];
    \draw(-.377,.787025) arc[start angle=-96, end angle=90, radius=.06];
    \def\mypath{(-.06,-.98) -- (-.06,-.95) %
        arc[start angle=180, end angle=0, radius=.06] -- (.06,-.98)}
    \foreach \t in {0,120,240} {
        \draw[rotate=\t] \mypath;
    }
    \def\mypath{(0,.98) -- (0,.98) arc[start angle=90, end angle=55.5, radius=.98]}
    \draw[rotate=56.5] \mypath;
    \draw[rotate=-22] \mypath;
    \def\mypath{(0,.98) -- (0,.98) arc[start angle=90, end angle=-23, radius=.98cm]}
    \draw[rotate=176.5] \mypath;
    \draw[rotate=296.5] \mypath;
\end{tikzpicture}
\end{document}

введите описание изображения здесь

Связанный контент