我如何修复挤压的多边形角?

我如何修复挤压的多边形角?

我正在使用 tkz-euclide,遇到一个问题,每个内接三角形的角都伸出圆周。它看起来是这样的: 哦哦!

...这是我使用的代码:

\documentclass[convert]{standalone}
\usepackage{tkz-euclide}

\begin{document}
\begin{tikzpicture}
\tkzDefPoints{0/0/O, 3/0/P, 3/0/R}
\tkzDrawCircle(O,P)
\tkzDrawPoint(O)
\tkzLabelPoints(O)

\foreach \i in {0,...,2}
{
    \tkzDefPointOnCircle[angle=120*\i ,center=O,radius=3]
    \tkzGetPoint{P}
    \tkzDefPointOnCircle[angle=120*\i + 120,center=O,radius=3]
    \tkzGetPoint{R}
    \tkzDrawPolygon[fill=blue!20!white](O,P,R)
}

\end{tikzpicture}
\end{document}

我知道这只是一个小细节,但我想知道如何解决这个问题,以防其他人也遇到这个问题。提前谢谢!

答案1

这个问题可能重复了。您可以将更改为line join更合适的类型 - 请参阅:在 TikZ 中,何时“line join=miter”比“line join=round”更可取?

\documentclass[convert]{standalone}
\usepackage{tkz-euclide}

\begin{document}
\begin{tikzpicture}
\tkzDefPoints{0/0/O, 3/0/P, 3/0/R}
\tkzDrawCircle(O,P)
\tkzDrawPoint(O)
\tkzLabelPoints(O)

\foreach \i in {0,...,2}
{
    \tkzDefPointOnCircle[angle=120*\i ,center=O,radius=3]
    \tkzGetPoint{P}
    \tkzDefPointOnCircle[angle=120*\i + 120,center=O,radius=3]
    \tkzGetPoint{R}
    \tkzDrawPolygon[fill=blue!20!white, line join=round](O,P,R)
}

\end{tikzpicture}
\end{document}

具有更好线点的圆形和三角形

答案2

您应该调整连接类型:

\documentclass[convert]{standalone}
\usepackage{tkz-euclide}

\begin{document}
    \begin{tikzpicture}
        \tkzDefPoints{0/0/O, 3/0/P, 3/0/R}
        \tkzDrawCircle(O,P)
        \tkzDrawPoint(O)
        \tkzLabelPoints(O)
        
        \foreach \i in {0,...,2}
        {
            \tkzDefPointOnCircle[angle=120*\i ,center=O,radius=3]
            \tkzGetPoint{P}
            \tkzDefPointOnCircle[angle=120*\i + 120,center=O,radius=3]
            \tkzGetPoint{R}
            \tkzDrawPolygon[fill=blue!20!white,line join=bevel](O,P,R)
        }
        
    \end{tikzpicture}
\end{document}

相关内容