如何使图形的边缘显得弯曲

如何使图形的边缘显得弯曲
\documentclass[10pt,a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{makeidx}
\usepackage{graphicx}
\usepackage{tikz}
\begin{document}
    \begin{figure}
        \centering
        \begin{tikzpicture}
        \node[shape=circle,draw=black] (s) at (-3,3) {$1$};  
        \node[shape=circle,draw=black] (sr) at (3,3)  {$2$}; 
        \node[shape=circle,draw=black] (r) at  (-5,0) {$3$};  
        \node[shape=circle,draw=black] (r2) at  (0,0) {$4$};  
        \node[shape=circle,draw=black] (sr2) at  (3,-3) {$5$};  
        \node[shape=circle,draw=black] (sr3) at  (-3,-3) {$6$};  
        
        
        
        \draw (s) -- (sr); 
        \draw (s) -- (r2); 
        \draw (sr) -- (sr2); 
        \draw (sr2) -- (sr3); 
        \draw (sr3) -- (s); 
        \draw (r2) -- (sr); 
        \draw (s) -- (r); 
        \draw (r) -- (sr3); 
        \draw (sr) -- (r); 
        \draw (sr2) -- (r); 
        \draw (s) -- (r2); 
        \draw (r2) -- (sr3); 
        \draw (sr) -- (r2); 
        \draw (sr2) -- (r2); 
        \end{tikzpicture}
        
        
    \end{figure}
    
\end{document}

我得到了下图作为输出。 https://i.stack.imgur.com/ALUcB.jpg 但我想让这个数字看起来像这样: 图尔

如何绘制这样的边缘?请帮忙。

答案1

在您的代码中进行以下编辑--

在此处输入图片描述

\draw (sr) to [bend right=90,looseness=1.5] (r); 
\draw (sr2) to [bend right=-90,looseness=1.5](r); 

答案2

我能想到两种可能的解决方案:

解决方案 1

您可以用 来替换 ,--to接受额外的选项,例如路径离开原点的角度以及路径到达目的地的角度。

在你的情况下,你可以替换

\draw (sr) -- (r); 
\draw (sr2) -- (r);

\draw (sr) to [in = 90, out = 135] (r);
\draw (sr2) to [in = -90, out = -135] (r);

尝试各种角度,以更好地了解它们的工作原理。要使这个简单的解决方案适合您的情况,您还必须进一步node r向左移动。

解决方案 2

r上述解决方案可以在从到sr/ 的途中扩展一个中间辅助坐标sr2。以下代码使用 x 值为r且 y 值位于rsr/中间的坐标sr2

\draw (sr) to [out = 135, in = 90] ($(sr-|r)!0.5!(r)$) -- (r);
\draw (sr2) to [out = -135, in = -90] ($(sr2-|r)!0.5!(r)$) -- (r);

这样 的位置r就可以保持不变。要使此代码正常工作,calc需要 库,该库可以包含在 中\usetikzlibrary{calc}

为了形象地展示语法是如何($(sr-|r)!0.5!(r)$)运作的,你可以在它的不同部分画一些小圆圈

\fill [blue] (sr-|r) circle (1mm); % mixing x-coordinate of r with y-coordinate of sr
\fill [red] ($(sr-|r)!0.5!(r)$) circle (1mm); % going to the center (0.5) between the previous coordinate and r

相关内容