TikZ: como preencher área definida por interseções?

TikZ: como preencher área definida por interseções?

Eu gostaria de preencher esse formato de triângulo insira a descrição da imagem aqui

O código é:

\documentclass[border=0.2cm]{standalone}
\usepackage{tikz}

\begin{document}
\begin{tikzpicture}
    % \draw [help lines] (7,0) grid (11,4);
    \draw [fill=red] (0,1.3) circle (1.3); 
    \draw [fill=blue] plot [smooth cycle,scale=0.4, xshift=18cm, yshift=1.5cm] coordinates
    {(1,0) (0,2) (1.3,4) (3.6,2) (3.6+3.6-1.3,4) (2*3.6,2) (3.6+3.6-1,0) (3.6,1)}; 
    \draw (8.55,0.98) -- ++ (0.1,-1.47) (8.7,0.99) -- (8.55+0.1,-0.49); 

\end{tikzpicture}
\end{document}

eu olhei para cimaPreenchendo área entre duas linhas e um arcomas não consegui encontrar uma solução. Acho que primeiro devo dar o nome ao objeto azul através de name path=candy. Então, eu deveria dar o comando

\path[name path=twolines] (0.98) -- ++ (0.1,-1.47) (8.7,0.99) -- (8.55+0.1,-0.49);

para encontrar as interseções. Depois disso, com o comando fill, devo conseguir preencher essa área. O problema é que não sei como. Talvez com a ajuda de \clip, mas novamente, como?

Responder1

Dois truques simples podem economizar muito trabalho. Desenhe esse triângulo e preencha-o como de costume [fill=<color>]antes de desenhar a forma de mariposa e, em seguida, desloque o triângulo para cima em um comprimento bem pequeno para ocultar aquele pequeno espaço branco entre o arco e o lado do triângulo. Finalmente desenhe a forma curva. É um pouco aproximado, mas vai lhe poupar muita dor de cabeça.

\documentclass[border=0.2cm]{standalone}
\usepackage{tikz}

\begin{document}

\begin{tikzpicture}
    % \draw [help lines] (7,0) grid (11,4);
    \draw [fill=red] (0,1.3) circle (1.3);
    \draw [fill=red,yshift=1pt] (8.55,0.98) -- ++(0.1,-1.47) -- (8.7,0.99); 
    \draw [fill=blue] plot [smooth cycle,scale=0.4, xshift=18cm, yshift=1.5cm] coordinates
    {(1,0) (0,2) (1.3,4) (3.6,2) (3.6+3.6-1.3,4) (2*3.6,2) (3.6+3.6-1,0) (3.6,1)}; 
\end{tikzpicture}

\end{document}

insira a descrição da imagem aqui

Responder2

Você pode simplesmente desenhar seu triângulo um pouco grande demais na parte superior - eu uso a shortenopção com comprimento negativo. -e então coloque seu arco em cima para obter um resultado perfeito como este:

\documentclass[border=0.2cm]{standalone}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
   \draw [fill=red, shorten <=-0.1cm, shorten >=-0.1cm] (8.55,0.98) -- (8.65,-0.49) -- (8.7,0.99); 
   \draw [fill=blue] plot [smooth cycle,scale=0.4, xshift=18cm, yshift=1.5cm] coordinates
    {(1,0) (0,2) (1.3,4) (3.6,2) (3.6+3.6-1.3,4) (2*3.6,2) (3.6+3.6-1,0) (3.6,1)}; 
 \end{tikzpicture}
\end{document}

Triângulo preenchido com arco

Se por algum motivo você precisar de um triângulo preenchido perfeito em primeiro plano, poderá usar o clipe invertido da resposta de @Jake com o arco:https://tex.stackexchange.com/a/12033/8650

informação relacionada