Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- \documentclass[a4paper]{amsart}
- \usepackage{tikz, xparse, xstring}
- \usetikzlibrary{arrows, decorations.pathmorphing, shapes}
- \input{polygons.tin}
- \usepackage{fullpage, skull}
- \usepgflibrary{profiler}
- \pgfprofilenewforenvironment{tikzpicture}
- \pgfprofilenewforcommand{\pgfkeys}{1}
- \setlength{\parskip}{5mm}
- \setlength{\parindent}{0mm}
- \raggedright
- \renewcommand{\familydefault}{\sfdefault}
- \definecolor{myred}{rgb}{0.9, 0, 0}
- \definecolor{mygreen}{rgb}{0, 0.8, 0}
- \definecolor{myblue}{rgb}{0, 0, 1}
- \setlength{\roundpolygondefaultradius}{14mm}
- \setlength{\flatpolygondefaultzerojoinerdepth}{5.8mm}
- \setlength{\flatpolygondefaultvertexseparation}{7mm}
- \setlength{\flatpolygondefaultbottomedgejoinerheight}{3.5mm}
- \setlength{\flatpolygondefaultedgejoinerheightstep}{2.4mm}
- \newlength{\mylength}
- \makeatletter
- % \writelistitems [*] {list}
- % {list item processor}
- % Starred form: adds Oxford comma if list has three or more items. No effect if list has
- % fewer than three items.
- \NewDocumentCommand{\writelistitems}{smm}{%
- \saveexpandmode
- \fullexpandarg
- \StrDel{#2}{ }[\wli@list]
- \StrCount{\wli@list}{,}[\wli@numberoflistitemsminusone]
- \ifnum\wli@numberoflistitemsminusone=0
- \edef\wli@output{\unexpanded{#3}{\wli@list}}
- \else
- \StrCut [\wli@numberoflistitemsminusone]
- {\wli@list}
- {,}
- {\wli@list}
- {\wli@currentlistitem}
- \ifnum\wli@numberoflistitemsminusone=1
- \edef\wli@output{%
- \unexpanded{#3}{\wli@list}{} and \unexpanded{#3}{\wli@currentlistitem}%
- }
- \else
- \edef\wli@endpart{\unexpanded{#3}{\wli@currentlistitem}}
- \IfBooleanTF {#1}
- {\def\wli@middlepart{and }}
- {\pgfmathtruncatemacro {\wli@numberoflistitemsminustwo}
- {\wli@numberoflistitemsminusone - 1}
- \StrCut [\wli@numberoflistitemsminustwo]
- {\wli@list}
- {,}
- {\wli@list}
- {\wli@currentlistitem}
- \edef\wli@middlepart{\unexpanded{#3}{\wli@currentlistitem} and }
- }
- \gdef\wli@beginpart{}
- \foreach \x in \wli@list {
- \xdef\wli@beginpart{%
- \unexpanded\expandafter{\wli@beginpart}\unexpanded{#3}{\x}, %
- }
- }
- \def\wli@output{\wli@beginpart\wli@middlepart\wli@endpart}
- \fi
- \fi
- \global\let\wli@list\relax
- \global\let\wli@currentlistitem\relax
- \restoreexpandmode
- \wli@output%
- }
- \makeatother
- \newcommand{\macroname}[1]{\texttt{\textbackslash#1}}
- \NewDocumentCommand{\macronames}{sm}{%
- \IfBooleanTF {#1}
- {\writelistitems*{#2}{\macroname}}
- {\writelistitems{#2}{\macroname}}%
- }
- \begin{document}
- Test the ``roundpolygon'' macros.
- \macronames{ roundpolygonnoedges,
- roundpolygonedges,
- roundpolygonedgessubset,
- roundpolygonedgessubsetcomplement
- }
- \begin{tabular}{|c|c|c|}
- \hline
- \tikz{\roundpolygonnoedges{8}}
- & \tikz{\roundpolygonnoedges[][a, b, c, d, e, p, q, r, s, t, too, many, labels]{10}}
- & \begin{tikzpicture}
- \setlength{\roundpolygondefaultradius}{10mm}
- \roundpolygonnoedges[mypoly][0,,2,,4,,6,,8]{10}
- \begin{scope}[line width = 1pt, white, double distance = 1pt]
- \draw [double = myred] (mypoly vertex 0) -- (mypoly vertex 5);
- \draw [double = mygreen] (mypoly edge 1) -- (mypoly edge 6);
- \draw [double = myblue] (mypoly edge 3) -- (mypoly edge 8);
- \end{scope}
- \roundpolygonedgessubset[mypoly]{1, 3, 6, 8}
- \end{tikzpicture}
- \\ \hline
- \tikz{\roundpolygonnoedges[][][5mm]{8}}
- & \begin{tikzpicture}
- \roundpolygonnoedges[][][20mm]{16}
- \begin{scope}[ every to/.style = {out = 30, in = 210, relative},
- roundpolygon edge/.style = {myred}
- ]
- \roundpolygonedgessubset{0, 2, 4, 6, 8, 10, 12, 14}
- \end{scope}
- \begin{scope}[ every to/.style = {out = 330, in = 150, relative},
- polygon edge/.style = {myblue}
- ]
- \roundpolygonedgessubsetcomplement[]{0, 2, 4, 6, 8, 10, 12, 14}
- \end{scope}
- \end{tikzpicture}
- & \begin{tikzpicture}
- \roundpolygonnoedges[bigpoly][][16mm]{12}
- \draw [line width = 1pt, myred]
- (bigpoly vertex 3) -- ++ (-28mm, 21mm)
- -- ++ (0mm, -42mm)
- -- (bigpoly vertex 3);
- \begin{scope}[polygon edge/.style = { line width = 1pt,
- white,
- double = myblue,
- double distance = 1pt
- }]
- \roundpolygonedges [bigpoly] % Test that space is ignored
- \end{scope}
- \end{tikzpicture}
- \\ \hline
- \end{tabular}
- \macronames{roundpolygon, roundpolygonedgejoiner}
- \begin{tabular}{|c|c|c|c|c|}
- \hline
- \begin{tikzpicture}
- \begin{scope}
- \roundpolygon!{5} % Try removing the exclamation mark - you will get an error.
- \end{scope}
- \roundpolygonedgejoiner{0}{2}
- \roundpolygonedgejoiner[][fancy meeting you here]{2}{3}
- \draw [thick, myred] (ejmd 0 to 2) -- (fancy meeting you here ejmd 2 to 3);
- \end{tikzpicture}
- & \tikz{\roundpolygon[][5, 4, 3, 2, 1, \skull][10mm]{8}}
- & \begin{tikzpicture}[ultra thick]
- \roundpolygon[thickpoly]{6}
- \roundpolygonedgejoiner[thickpoly]{0}{2}
- \draw [white]
- (thickpoly edge 0) -- (thickpoly edge 3);
- \draw [myred]
- (thickpoly edge joiner middle dot 0 to 2) -- (thickpoly vertex 4);
- \end{tikzpicture}
- & \tikz{\roundpolygon{2}}
- & \tikz[roundpolygon edge/.style = {->, > = triangle 60}]{\roundpolygon{2}}
- \\ \hline
- \end{tabular}
- \macronames{roundpolygonwithedgejoiners}
- \begin{tabular}{|c|c|c|}
- \hline
- \begin{tikzpicture}
- \roundpolygonwithedgejoiners{6}{0-1, 2*5, 3-4}
- \end{tikzpicture}
- & \tikz{\roundpolygonwithedgejoiners [gosh]
- [0, 1, 2, 34, 56, 7, 8, 9, 10, 11]
- [20mm]
- {10}
- {0*9, 1-8, 2-7, 3-6, 4*5}}
- & \begin{tikzpicture}
- \roundpolygonwithedgejoiners[golly]{8}{0-4}
- \draw [thick, myred] (golly edge 2) -- (golly edge joiner middle dot 0 to 4);
- \end{tikzpicture}
- \\ \hline
- \end{tabular}
- \newpage
- \macronames{ roundpolygonwithmaximallynestededgejoiners,
- roundpolygonwithminimallynestededgejoiners,
- roundpolygonvertexat,
- roundpolygonedgejoinermiddledotat
- }
- \begin{tikzpicture}[remember picture]
- \roundpolygonwithmaximallynestededgejoiners[remembered]{12}
- \end{tikzpicture}
- \begin{tabular}{|c|c|c|}
- \hline
- \tikz{\roundpolygonwithmaximallynestededgejoiners[][1]{12}}
- & \tikz[every to/.style = {bend right = 30}]{
- \roundpolygonwithmaximallynestededgejoiners[][14]{12}
- }
- & \begin{tikzpicture}[remember picture]
- \roundpolygonwithmaximallynestededgejoiners[join up][3]{12}
- \begin{scope}[overlay]
- \draw [purple] (join up vertex 9) -- (remembered vertex 3)
- coordinate [midway] (a);
- \roundpolygonvertexat{a};
- \end{scope}
- \end{tikzpicture}
- \\ \hline
- \begin{tikzpicture}
- \roundpolygonwithmaximallynestededgejoiners[][4]{12}
- \roundpolygonvertexat<extra dot>{vertex 0 |- vertex 1}
- \roundpolygonedgejoinermiddledotat{edge joiner middle dot 11 to 8}
- \roundpolygonedgejoinermiddledotat <yet another dot>
- {edge joiner middle dot 3 to 4}
- \draw [myred] (vertex 9) -- (extra dot) -- (0, 0) -- (yet another dot);
- \end{tikzpicture}
- & \tikz{\roundpolygonwithmaximallynestededgejoiners[][-7]{12}}
- & \tikz{\roundpolygonwithmaximallynestededgejoiners[][6]{12}}
- \\ \hline
- \begin{tikzpicture}
- \roundpolygonwithminimallynestededgejoiners[pentagram][0]{10}
- \draw (pentagram ejmd 0 to 1) -- (pentagram ejmd 4 to 5)
- -- (pentagram ejmd 8 to 9)
- -- (pentagram ejmd 2 to 3)
- -- (pentagram ejmd 6 to 7)
- -- cycle;
- \end{tikzpicture}
- & \tikz{\roundpolygonwithminimallynestededgejoiners[][1]{10}}
- & \tikz{\roundpolygonwithminimallynestededgejoiners[][-8]{10}}
- \\ \hline
- \tikz{
- \roundpolygonwithminimallynestededgejoiners
- []
- [21]
- [\times,,\times,,\times,,\times,,\times,,\times,,\times,,\times,,\times,,]
- {10}
- }
- & \tikz{\roundpolygonwithmaximallynestededgejoiners[][15][][20mm]{18}}
- & \begin{tikzpicture}
- \roundpolygonwithminimallynestededgejoiners[outside][][,][18mm]{10}
- \pgfmathsetlength{\mylength}{18mm * (2 * cos(36) - 1)}
- \begin{scope}[roundpolygon vertex/.append style = { fill = none,
- minimum size = 1.6mm}]
- \roundpolygonwithmaximallynestededgejoiners[inside][][,][\mylength]{10}
- \end{scope}
- \foreach \x in {0, ..., 9} {
- \pgfmathtruncatemacro{\y}{Mod(\x + 1, 10)}
- \draw (outside vertex \x) -- (inside vertex \y);
- }
- \end{tikzpicture}
- \\ \hline
- \end{tabular}
- \newpage
- Test the ``flatpolygon'' macros.
- \macronames{flatpolygonnoedges}
- \tikz{\flatpolygonnoedges{10}}
- \begin{tikzpicture}
- \flatpolygonnoedges[zz][,][10mm]{8}
- \path (zz left 0) -- ++ ( 5mm, 5mm) coordinate (top left outer);
- \path (zz vertex 0) -- ++ ( 5mm, -5mm) coordinate (bottom left outer);
- \path (zz right 0) -- ++ (-5mm, 5mm) coordinate (top right outer);
- \path (zz vertex 8) -- ++ (-5mm, -5mm) coordinate (bottom right outer);
- \path (top left outer) -- ++ ( 2mm, 0mm) coordinate (top left inner);
- \path (bottom left outer) -- ++ ( 2mm, 0mm) coordinate (bottom left inner);
- \path (top right outer) -- ++ (-2mm, 0mm) coordinate (top right inner);
- \path (bottom right outer) -- ++ (-2mm, 0mm) coordinate (bottom right inner);
- \draw [myred, decoration = {coil, aspect = 1, segment length = 1.963mm}]
- % That segment length took a little trial and error to get right. 2mm doesn't
- % look right (the decoration ends too early on the right-hand side), probably due
- % to rounding errors in TeX arithmetic or something like that.
- (zz vertex 0) -- (top left outer)
- -- (top left inner)
- decorate {-- (top right inner)}
- -- (top right outer)
- -- (zz vertex 8);
- \draw [myblue, decoration = {coil, aspect = 1, segment length = 1.963mm, mirror}]
- (zz left 0) -- (bottom left outer)
- -- (bottom left inner)
- decorate {-- (bottom right inner)}
- -- (bottom right outer)
- -- (zz right 0);
- \end{tikzpicture}
- \begin{tikzpicture}
- \flatpolygonnoedges[][0,,w,,x,,y,,z][later][5mm]{8}
- \begin{scope}[xshift = 55mm]
- \flatpolygonlabelbaselineof{>}
- \flatpolygonnoedges[][0,,w,,x,,y,,z][later][5mm]{8}
- \end{scope}
- \end{tikzpicture}
- \begin{tikzpicture}
- \setlength{\flatpolygondefaultvertexseparation}{3mm}
- \flatpolygonnoedges[][0,,2,,4][none]{30}
- \path [late options = {name = vertex 22, label = below: {\itshape how many?!}}];
- \end{tikzpicture}
- \begin{tikzpicture}
- \setlength{\flatpolygondefaultzerojoinerdepth}{2mm}
- \flatpolygonnoedges[myflatpoly]{8}
- \begin{scope}[thick]
- \draw [myred]
- (myflatpoly vertex 2) parabola [parabola height = 5mm] (myflatpoly vertex 3);
- \draw [myblue]
- (myflatpoly edge 2) parabola [parabola height = 5mm] (myflatpoly edge 3);
- \end{scope}
- \end{tikzpicture}
- \macronames{flatpolygonedges}
- \begin{tikzpicture}[flatpolygon vertex/.append style = {fill = none, minimum size = 2mm}]
- \flatpolygonnoedges[myflatpolywithedges][0][none]{6}
- \flatpolygonedges [myflatpolywithedges] % Again, test that space is ignored
- \end{tikzpicture}
- \macronames{flatpolygon}
- \tikz{\flatpolygon[][][5mm][5mm]{12}}
- \begin{tikzpicture}
- \flatpolygon[yet another flatpolygon][0, 1, 2, 3, 4, 5, 6, 5, 4, 3, 2, 1][later]{12}
- \draw [very thick, myred] (yet another flatpolygon vertex 5)
- arc (180: 0: \flatpolygondefaultvertexseparation)
- arc (180: 360: \flatpolygondefaultvertexseparation);
- \end{tikzpicture}
- \newpage
- \macronames{flatpolygonedgejoiner}
- \begin{tikzpicture}
- \flatpolygon[wrong way around]{10}
- \flatpolygonedgejoiner[wrong way around]{0}{9}
- \flatpolygonedgejoiner[wrong way around]{1}{8}
- \flatpolygonedgejoiner[wrong way around]{2}{7}
- \flatpolygonedgejoiner[wrong way around]{3}{6}
- \flatpolygonedgejoiner[wrong way around]{4}{5}
- \end{tikzpicture}
- \begin{tikzpicture}
- \begin{scope}
- \flatpolygon![scoping]{10}
- % Again, if you remove the exclamation mark, you will get an error.
- \end{scope}
- \begin{scope}
- \flatpolygonedgejoiner[scoping]{2}{3}
- \flatpolygonedgejoiner[scoping]{4}{5}
- \flatpolygonedgejoiner[scoping]{1}{6}
- \end{scope}
- \flatpolygonedgejoiner*[scoping]{0}{7}
- \end{tikzpicture}
- \begin{tikzpicture}
- \setlength{\flatpolygondefaultvertexseparation}{10mm}
- \flatpolygonnoedges[different heights]{12}
- \flatpolygonedgejoiner[different heights][][5mm][3mm]{2}{3}
- \flatpolygonedgejoiner[different heights][][5mm][3mm]{1}{4}
- \flatpolygonedgejoiner[different heights][oh well][5mm][3mm]{0}{5}
- \flatpolygonedgejoiner[different heights][][8mm][5mm]{8}{9}
- \flatpolygonedgejoiner[different heights][][8mm][5mm]{7}{10}
- \setlength{\flatpolygondefaultbottomedgejoinerheight}{8mm}
- \flatpolygonedgejoiner[different heights][][][5mm]{6}{11}
- \draw [thick, myred]
- (different heights oh well edge joiner middle dot 5 to 0)
- -- (different heights oh well ejmd 0 to 5 |- different heights ejmd 11 to 6)
- parabola [bend = (different heights vertex 6)] (different heights ejmd 6 to 11);
- \begin{scope}[polygon edge/.style = {thick, myblue!80}]
- \begin{scope}[every to/.style = {bend right = 30}]
- \flatpolygonedgessubset[different heights]{5, 6}
- \end{scope}
- \begin{scope}[every to/.style = {bend left = 30}]
- \flatpolygonedgessubsetcomplement[different heights]{1, 5, 6, 11}
- \end{scope}
- \begin{scope}[polygon edge/.append style = {ultra thick}]
- \flatpolygonedgessubset[different heights]{1, 11}
- \end{scope}
- \end{scope}
- \end{tikzpicture}
- \macronames{flatpolygonwithedgejoiners, switchtovariantflatpolygonnoedges}
- \tikz{\flatpolygonwithedgejoiners[][a, b, c, 1, 2, 3]{10}{0*9, 1-8, 2-7, 3-6, 4-5}}
- \begin{tikzpicture}
- \switchtovariantflatpolygonnoedges
- \begin{scope}[text = myred]
- \flatpolygonwithedgejoiners! [scopes complex][!,][][14mm][7mm][7mm]
- {10}{1-8, 2-3, 4-5, 6-7}
- \end{scope}
- \flatpolygonedgejoiner[scopes complex]{0}{9}
- \draw [very thick, myred]
- (scopes complex edge joiner middle dot 4 to 5)
- ++ (-5mm, 0) -- ++ (10mm, 0)
- (scopes complex edge joiner middle dot 4 to 5) -- ++ (0, 1.3mm)
- ++ (-5mm, 0) -- ++ (10mm, 0);
- \end{tikzpicture}
- \tikz{\flatpolygonwithedgejoiners[][][later]{12}{4-1, 2-3, 5-6, 9*8, 10-11, 7-0}}
- \newpage
- \macronames{ flatpolygonwithmaximallynestededgejoiners,
- flatpolygonwithminimallynestededgejoiners,
- undoswitchtovariantflatpolygonnoedges
- }
- \tikz{\flatpolygonwithmaximallynestededgejoiners{12}}
- \tikz{\flatpolygonwithmaximallynestededgejoiners[][1]{12}}
- \tikz{\flatpolygonwithmaximallynestededgejoiners[][2]{12}}
- \begin{tikzpicture}
- \def\labels{\bigtriangleup,,,\bigtriangledown,,,\bigtriangleup,,,\bigtriangledown}
- \flatpolygonwithmaximallynestededgejoiners[][3][\labels][none][10mm][5mm][1.5mm]{12}
- \end{tikzpicture}
- \tikz{
- \switchtovariantflatpolygonnoedges!
- \flatpolygonwithmaximallynestededgejoiners[][-8]{12}
- \flatpolygonedgejoinermiddledotat{ejmd 8 to 11}
- }
- \tikz{\flatpolygonwithmaximallynestededgejoiners[][17]{12}}
- \tikz{
- \undoswitchtovariantflatpolygonnoedges!
- \flatpolygonwithminimallynestededgejoiners[]{12}
- }
- \begin{tikzpicture}[remember picture]
- \flatpolygonwithminimallynestededgejoiners[do you recall][-3][,,l,a,s,e,r,b,e,a,m]{12}
- \end{tikzpicture}
- \begin{tikzpicture}[remember picture]
- \flatpolygonwithminimallynestededgejoiners[][8][][later]{12}
- \begin{scope}[overlay, ->, myred]
- \draw (do you recall edge joiner middle dot 1 to 2) -- (ejmd 2 to 3);
- \draw (do you recall ejmd 4 to 3) -- (ejmd 4 to 5);
- \draw (do you recall ejmd 5 to 6) -- (edge joiner middle dot 6 to 7);
- \draw (do you recall edge joiner middle dot 7 to 8) -- (ejmd 8 to 9);
- \draw (do you recall ejmd 9 to 10) -- (ejmd 10 to 11);
- \draw (do you recall ejmd 0 to 11) -- (ejmd 0 to 1);
- \end{scope}
- \end{tikzpicture}
- \newpage
- \macronames{nodetonodezerojoiner, nodetonodeedgejoiner}
- \macronames{ lefthalfzerojoiner,
- righthalfzerojoiner,
- lefthalfzerojoinerendflushwithpoint,
- righthalfzerojoinerendflushwithpoint,
- lefthalfedgejoiner,
- righthalfedgejoiner,
- lefthalfedgejoinerendflushwithpoint,
- righthalfedgejoinerendflushwithpoint
- }
- \newpage
- Test the ``edge joiner list'' macros.
- \macronames{ shiftedgejoinerlist,
- edgejoinerlistcommatopgf,
- maximallynestededgejoinerlist,
- minimallynestededgejoinerlist,
- prettyprintedgejoinerlist
- }
- \edgejoinerlistcommatopgf{\mymacro}[-4][6]{0-5, 1-4, 2-3}
- \tikz{\roundpolygonwithedgejoinersbasic{6}{\mymacro}}
- \prettyprintedgejoinerlist{4-7, 6-5, 1*2, 0*3, 9-8}
- \def\myedgejoinerlist{0-7, 1*2, 3-6, 4-5}
- \prettyprintedgejoinerlist[\mymacro][0][8]{\myedgejoinerlist}\mymacro;
- \prettyprintedgejoinerlist[][1][8]{\myedgejoinerlist};
- \prettyprintedgejoinerlist[][2][8]{\myedgejoinerlist};
- \prettyprintedgejoinerlist[\mymacro][3][8]{\myedgejoinerlist}\mymacro;
- \prettyprintedgejoinerlist[][4][8]{\myedgejoinerlist};
- \prettyprintedgejoinerlist[][5][8]{\myedgejoinerlist};
- \prettyprintedgejoinerlist[][6][8]{\myedgejoinerlist};
- \prettyprintedgejoinerlist[][7][8]{\myedgejoinerlist}
- \prettyprintedgejoinerlist*[\mymacro][0][8]{\myedgejoinerlist}\mymacro;
- \prettyprintedgejoinerlist*[][1][8]{\myedgejoinerlist};
- \prettyprintedgejoinerlist*[][2][8]{\myedgejoinerlist};
- \prettyprintedgejoinerlist*[\mymacro][3][8]{\myedgejoinerlist}\mymacro;
- \prettyprintedgejoinerlist*[][4][8]{\myedgejoinerlist};
- \prettyprintedgejoinerlist*[][5][8]{\myedgejoinerlist};
- \prettyprintedgejoinerlist*[][6][8]{\myedgejoinerlist};
- \prettyprintedgejoinerlist*[][7][8]{\myedgejoinerlist}
- \newpage
- Silly example
- \begin{tikzpicture}
- \roundpolygonwithedgejoiners[][][70mm]{60}{ 0*11, 1* 2, 3-10, 4- 7, 5- 6,
- 8- 9, 12-13, 14*51, 15-48, 16-33,
- 17-22, 18-21, 19*20, 23*32, 24-27,
- 25-26, 28-29, 30-31, 34-37, 35-36,
- 38*45, 39-40, 41*44, 42-43, 46-47,
- 49*50, 52-59, 53*58, 54-57, 55-56
- }
- \path [ late options = {name = ejmd 14 to 51, alias = A},
- late options = {name = ejmd 23 to 32, alias = B},
- late options = {name = ejmd 38 to 45, alias = C}
- ];
- \roundpolygonedgejoinermiddledotat<P>{barycentric cs:A=1,B=1,C=1};
- \def\mycircles{\foreach \radius in {1.6, ..., 18.6} {circle (\radius mm)};}
- \draw [real roundpolygon edge joiner] (P) \mycircles;
- \foreach \x/\y/\v/\c in {A/B/17/mygreen, B/C/34/myred, C/A/51/myblue} {
- \begin{scope}
- % Why do we need to specify ".center" everywhere?
- % See http://tex.stackexchange.com/questions/152186
- \clip (\x.center) .. controls (P.center) .. (\y.center)
- -- (vertex \v.center)
- -- (\x.center);
- \draw [real roundpolygon edge joiner, draw = \c] (P) \mycircles;
- \end{scope}
- }
- \begin{scope}[very thick]
- \foreach \x/\y/\c in {A/B/myred, B/C/myblue, C/A/mygreen} {
- \draw [\c] (\x) .. controls (P) .. (\y);
- }
- \end{scope}
- \begin{scope}[very thick, myred]
- \clip (A) circle [radius = 20mm];
- \draw (A) .. controls (P) .. (B);
- \end{scope}
- \end{tikzpicture}
- \end{document}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement