首页 > 解决方案 > 如何填充花瓣的区域?

问题描述

我想要的原始图像:

在此处输入图像描述

让我填补这些地区。有人可以帮助我吗?我的乳胶代码:

\documentclass[border=5mm]{standalone}

\usepackage[svgnames,x11names,dvispnames]{xcolor}
\usepackage{tikz,tkz-base,tkz-euclide,tkz-fct}

\begin{document}
    
    \begin{tikzpicture}
        \tkzDefPoints{0/0/A, 6/0/B}
        \tkzDefSquare(A,B)      \tkzGetPoints{C}{D}
        \tkzDrawPolygon(A,B,C,D)
        \tkzDefMidPoint(A,B)        \tkzGetPoint{M}
        \tkzDefMidPoint(A,D)        \tkzGetPoint{N}
        \tkzDefMidPoint(B,C)        \tkzGetPoint{O}
        \tkzDefMidPoint(C,D)        \tkzGetPoint{P}
        \tkzDrawSemiCircle(M,B)
        \tkzDrawSemiCircle(N,A)
        \tkzDrawSemiCircle(O,C)
        \tkzDrawSemiCircle(P,D)
        %\tkzLabelPoints(A,B,C,D,M,N,O,P)
    \end{tikzpicture}
\end{document}

标签: latextikz

解决方案


\documentclass[border=5mm]{standalone}

\usepackage[svgnames,x11names,dvispnames]{xcolor}
\usepackage{tikz,tkz-base,tkz-euclide,tkz-fct}

\begin{document}
    
    \begin{tikzpicture}
        \tkzDefPoints{0/0/A, 6/0/B}
        \tkzDefSquare(A,B)      \tkzGetPoints{C}{D}
        \tkzDrawPolygon(A,B,C,D)
        \tkzDefMidPoint(A,B)        \tkzGetPoint{M}
        \tkzDefMidPoint(A,D)        \tkzGetPoint{N}
        \tkzDefMidPoint(B,C)        \tkzGetPoint{O}
        \tkzDefMidPoint(C,D)        \tkzGetPoint{P}
        \begin{pgfinterruptboundingbox}
        \begin{scope}
          \tkzClipCircle(N,A)
          \tkzDrawSemiCircle[fill=blue,draw=none](M,B)
          \tkzDrawSemiCircle[fill=yellow,draw=none](P,D)
        \end{scope}
        \begin{scope}
          \tkzClipCircle(O,B)
          \tkzDrawSemiCircle[fill=red,draw=none](M,B)
          \tkzDrawSemiCircle[fill=green,draw=none](P,D)
        \end{scope}        
        \end{pgfinterruptboundingbox}
        \tkzLabelPoints(A,B,C,D,M,N,O,P)
    \end{tikzpicture}
\end{document}

在此处输入图像描述


推荐阅读