TikZ 和 2018 年 FIFA 世界杯:各国国旗

TikZ 和 2018 年 FIFA 世界杯:各国国旗

我有点 TikZ 上瘾,也是足球迷。这次——2018 年世界杯——是放松的好机会,我可以用纯 TikZ 或基于 TikZ 的代码绘制 32 支足球队的旗帜。有些很容易(比如日本国旗 ^^),有些有点难!请加入和/或建议我!

让我先从韩国国旗开始。在其代码中,我喜欢以下方式:(i) 仅通过一个参数 \YYrotation 绘制阴阳符号和 4 个黑色三元组;(ii) 使用范围、foreach,以及 (iii) 使用技巧,用稍大的线宽为黑/白三元组着色。我首先在 (0,0) 处绘制三元组,然后使用旋转和移位移动到角落。韩国国旗的描述可以在这里找到https://en.wikipedia.org/wiki/Flag_of_South_Korea

在此处输入图片描述

以下是韩国国旗的 TikZ 代码。

% Description of The SOUTH-KOREAN FLAG 
% https://en.wikipedia.org/wiki/Flag_of_South_Korea
% A rectangle: width = 2/3 length,
% the Yin Yang symbol (red above, blue below) at center,
% the 4 black trigrams at 4 corners.

\documentclass[border=5mm]{standalone}
\usepackage{tikz}
\usetikzlibrary{calc}
\begin{document}

\begin{tikzpicture}
\def\a{7.5}  % a half of the length 
\def\b{5}    % a half of the width 
\def\r{1.25} % radius of the Yin/Yang symbol 

% radius of the big circle
\pgfmathsetmacro{\R}{2*\r} 
% the rotation angle of Yin/Yang/trigrams
\pgfmathsetmacro{\YYrotation}{atan(3/2)} 

% the whole rectangle of the flag
\path (-\a,-\b) rectangle (\a,\b); 

% the Yin Yang symbol: draw, then rotate
\begin{scope}[rotate=\YYrotation]
\fill[red] (0,\R) arc (90:-90:\R) arc(-90:90:\r) arc(270:90:\r);
\fill[blue] (0,-\R) arc (270:90:\R) arc(90:270:\r) arc(90:-90:\r);
\end{scope}

% the spring trigram (the above-left corner)
\begin{scope}[rotate=\YYrotation,shift={(0,4.6)},line width=.42 cm]
\foreach \j in {0,5/8,-5/8} \draw (-5/4,\j)--(5/4,\j);
\end{scope}

% the autumn trigram (the below-left corner)
\begin{scope}[rotate=-\YYrotation,shift={(0,-4.6)},line width=.42 cm]
\foreach \j in {0,5/8,-5/8} \draw (-5/4,\j)--(5/4,\j);
\draw[white,line width=.44 cm] (-5/48,0)--(5/48,0);
\end{scope}

% the winter trigram (the above-right corner)
\begin{scope}[rotate=-\YYrotation,shift={(0,4.6)},line width=.42 cm]
\foreach \j in {0,5/8,-5/8} \draw (-5/4,\j)--(5/4,\j);
\foreach \j in {5/8,-5/8} \draw[white,line width=.44 cm] (-5/48,\j)--(5/48,\j);
\end{scope}

% the summer trigram (the below-right corner)
\begin{scope}[rotate=\YYrotation,shift={(0,-4.6)},line width=.42 cm]
\foreach \j in {0,5/8,-5/8} \draw (-5/4,\j)--(5/4,\j);
\foreach \j in {0,5/8,-5/8} \draw[white,line width=.44 cm] (-5/48,\j)--(5/48,\j);
\end{scope}
\end{tikzpicture}
\end{document} 

答案1

这是秘鲁的国旗,我国的普通国旗很简单,但在 2018 年的比赛中,他们使用了带有盾牌的国旗,因此在这篇文章中,我将尝试使用盾牌和他们在 FIFA 官方页面上提供的框架样式来完成它。

虽然我的国家已经被淘汰了,但希望至少能赢得最后一场比赛。

更新:使用装饰标记库完成 tikz 绘图。 在此处输入图片描述

梅威瑟:

% arara: pdflatex: {synctex: yes, action: nonstopmode}
% By J. Leon V. Share as Beerware philosophy
\documentclass[border=20pt]{standalone}
\usepackage{xcolor}
\definecolor{gold}{HTML}{D1BA87}
\definecolor{Redper}{HTML}{C60C30}
\definecolor{sky}{HTML}{0083C4}
\definecolor{vicug}{HTML}{A84A0E}
\usepackage{tikz}
\usepackage{pgfmath}
\usepackage{xifthen}
\usepackage[keli]{malayalam}
\usetikzlibrary{decorations.markings, arrows.meta,calc,shadows.blur,shadings,decorations.shapes}


\begin{document}
    \begin{tikzpicture}[
        %Environment Styles
        Laurel/.style={
            draw,
            double=green!50!black,
            postaction={
                decorate,
                decoration={
                    markings,
                    mark=between positions 0.4 and 0.8 step 0.2
                    with {
                        \draw[double=green!50!black,line width=0.5pt](0,0) [out=0,in=135]
                            to ++(0.25,-.1)
                            (0,0) [out=0,in=-90]
                            to ++(0.25,.15);
                        \draw[fill=Redper](0.25,-.1) circle (1.2pt);
                        \draw[fill=Redper](0.25,.15) circle (1.2pt);
                    }
                }
            },
            postaction={
                decorate,
                decoration={
                    markings,
                    mark=between positions 0.3 and 1 step 0.2
                    with {
                        \draw[fill=green!50!black](0,0) [out=-45,in=180]
                            to ++(0.5,-.1)[out=105,in=0]
                            to cycle;
                        \draw[fill=green!50!black](0,0) [out=-45,in=180]
                            to ++(0.5,-.2)[out=105,in=0]
                            to cycle;
                        \draw[fill=green!50!black](0,0) [out=45,in=180]
                            to ++(0.5,.1)[out=-105,in=0]
                            to cycle;
                        \draw[fill=green!50!black](0,0) [out=45,in=180]
                            to ++(0.5,.2)[out=-105,in=0]
                            to cycle;
                    }
                }
            }
        },
        Palma/.style={
            draw,
            double=green!50!black,
            postaction={
                decorate,
                decoration={
                    markings,
                    mark=between positions 0.3 and 1 step 0.08
                    with {
                        \draw[fill=green!50!black](0,0) [out=-30,in=160]
                            to ++(0.5,-.2)[out=150,in=0]
                            to cycle;
                        \draw[fill=green!50!black](0,0) [out=-30,in=160]
                            to ++(0.5,-.3)[out=150,in=0]
                            to cycle;
                        \draw[fill=green!50!black](0,0) [out=30,in=-160]
                            to ++(0.6,.0)[out=-150,in=0]
                            to cycle;
                        \draw[fill=green!50!black](0,0) [out=30,in=-160]
                            to ++(0.6,.1)[out=-150,in=0]
                            to cycle;
                        \draw[fill=green!50!black](0,0) [out=15,in=180]
                            to ++(0.65,-0.1)[out=-180,in=-15]
                            to cycle;
                    }
                }
            }
        },
        Corona/.style={
            draw,
            double=green!50!black,
            postaction={
                decorate,
                decoration={
                    markings,
                    mark=between positions 0 and 0.95 step 0.1
                    with {
                        \draw[fill=green!50!black](0,0) [out=-45,in=-135]
                            to ++(0.15,0)[out=135,in=45]
                            to cycle;
                        \draw[fill=green!50!black](0,0) [out=-90,in=180]
                            to ++(0.1,-.1)[out=90,in=0]
                            to cycle;
                        \draw[fill=green!50!black](0,0) [out=90,in=-180]
                            to ++(0.1,.1)[out=-90,in=0]
                            to cycle;
                    }
                }
            }
        },
        Quina/.style={
            draw,
            double=green!50!black,
            postaction={
                decorate,
                decoration={
                    markings,
                    mark=between positions 0 and 1 step 0.5
                    with {
                        \fill[fill=green!50!black](0,0) [out=-45,in=-135]
                            to ++(0.08,0)[out=135,in=45]
                            to cycle;
                        \fill[fill=green!50!black](0,0) [out=-90,in=180]
                            to ++(0.05,-.05)[out=90,in=0]
                            to cycle;
                        \fill[fill=green!50!black](0,0) [out=90,in=-180]
                            to ++(0.05,.05)[out=-90,in=0]
                            to cycle;
                    }
                }
            }
        }
    ]
    % Image to used to get coordinates. obtained from my country in fifa web page.
    %\node[inner sep=0pt] (FIG1) at (0,8) {\includegraphics[scale=2]{Peru-flag-russia-2018.pdf}};

    \fill[fill=Redper,out=48,in=180] (-6.2,0) 
        to ++(2.5,3.1)
        -- ++(7.45,0)[out=0,in=138]
        to ++(2.5,-3.1)[out=-138,in=0]
        to ++(-2.5,-3.1)
        -- ++(-7.45,0)[out=180,in=-48]
        to cycle;
    \fill[fill=white,even odd rule]
    (0,0)++(-2.05,-3.1) rectangle ++(4.1,6.2);
    \fill[fill=gold,even odd rule]
    [out=48,in=180] (-6.2,0) 
        to ++(2.5,3.1)
        -- ++(7.45,0)[out=0,in=138]
        to ++(2.5,-3.1)[out=-138,in=0]
        to ++(-2.5,-3.1)
        -- ++(-7.45,0)[out=180,in=-48]
        to cycle
    [out=48,in=180] (-6.6,0) 
        to ++(2.6,3.25)
        -- ++(8,0)[out=0,in=138]
        to ++(2.6,-3.25)[out=-138,in=0]
        to ++(-2.6,-3.25)
        -- ++(-8,0)[out=180,in=-48]
        to cycle;

    %Shield W.I.P.

    \draw[color=gold!80!black,line width=2pt,fill=Redper](0,0)++(-0.66,0)[out=-90,in=90]
    to ++(-0.17,-0.46)[out=-90,in=180]
    to ++(0.33,-0.33)[out=0,in=105]
    to ++(.5,-0.2)[out=75,in=180]
    to ++(.5,0.2)[out=0,in=-90]
    to ++(0.33,0.33)[out=90,in=-90]
    to ++(-0.17,0.46);

    \draw[color=gold!80!black,line width=2pt,fill=sky](0,0) --++(-0.66,0)[out=90,in=-30]
    to ++(-0.25,0.4)[out=30,in=-105]
    to ++(0.25,0.35)[out=-20,in=-135]
    to ++(0.66,0.15) -- cycle;

    \draw[color=gold!80!black,line width=2pt,fill=white](0,0)--++(0.66,0)[out=90,in=-150]
    to ++(0.25,0.4)[out=150,in=-75]
    to ++(-0.25,0.35)[out=-160,in=-45]
    to ++(-0.66,0.15) -- cycle;

    \draw[Laurel](0,0)++(-0.7,-1.5)[out=35,in=180]
    to ++(0.7,0.3)[out=0,in=-95]
    to ++(1.3,0.8)[out=85,in=-50]
    to ++(-.3,1.2);%1

    \draw[Palma](0,0)++(0.7,-1.5)[out=145,in=0]
    to ++(-0.7,0.3)[out=180,in=-65]
    to ++(-1.15,0.5)[out=115,in=-120]
    to ++(0,1.5);%1

    \draw[Corona](0,0)++(0,0.9)[out=0,in=-90]
    to ++(0.4,0.25)[out=90,in=0]
    to ++(-0.4,0.25);

    \draw[Corona](0,0)++(0,0.9)[out=180,in=-90]
    to ++(-0.4,0.25)[out=90,in=180]
    to ++(0.4,0.25);

    \draw[double=gold!60!black,line width=0.5pt](0,0)++(0.37,0.04)
    -- ++(0,0.4);

    \draw[Quina](0,0)++(0.37,0.35) coordinate (A)
    -- ++(0,0.2);
    \draw[Quina](A) -- ++(0.12,0.12);
    \draw[Quina](A) -- ++(-0.12,0.12);
    \draw[Quina](A)++(0,-0.15) -- ++(0.12,0.12);
    \draw[Quina](A)++(0,-0.15) -- ++(-0.12,0.12);

    % Draw Vicugna
    \draw[fill=vicug](0,0)++(-0.25,0.1)
    -- ++(0.02,0) -- ++(0.03,0.2)[out=0,in=-90] to ++(0.02,0.2) -- ++(0.06,0) --  ++ (-0.01,0.03)
    -- ++(-0.04,0.02)--  ++ (-0.02,0.02)--  ++ (0,0.05)--  ++ (-0.04,-0.05)--  ++ (-0.01,-0.02)[out=-135,in=0]
    to ++(-0.05,-0.16)[out=165,in=15] to ++(-0.25,0.04)[out=180,in=90] to ++(-0.05,-0.04)[out=180,in=90]
    to ++(-0.02,-0.04)[out=45,in=90] to ++(0.03,-0.03)[out=-90,in=90] to ++(0.04,-0.08)[out=-90,in=90]
    to ++(0.03,-0.06)[out=-90,in=90]to ++(0.02,-0.08) -- ++(0.02,0 )-- ++(0.03,0.15)[out=-90,in=135] to ++(0.15,-0.03)
    -- cycle;

    % Draw Rich Cornus
    \draw[fill=gold](0,0)++(0.5,-0.45)[out=180,in=-90] to ++ (-0.05,0.05)[out=90,in=180] to ++ (0.05,0.05)
    [out=0,in=90] to ++ (0.15,-0.15)[out=-90,in=0] to ++ (-0.18,-0.15) -- ++ (0,0.1)[out=0,in=-90] to ++ (0.1,0.1)
    [out=90,in=0] to ++ (-0.05,0.05)[out=180,in=135] to cycle;
    \foreach \distance in {0,0.4,0.45,...,1}{
        \draw[
            draw=none,
            decoration={
                markings,
                mark=at position \distance with {
                    \draw[fill=gold] (0,0) circle (5*\distance pt);
                }
            },
            postaction={decorate}
        ](0,0)++(0.5,-0.45) arc (270:90:0.05)
        arc (90:-90:0.12)[out=180,in=0] to ++(-0.6,0.38)[out=180,in=60] to ++(-0.2,-0.17);
    }

    \foreach \distance in {0,1,...,40}{
        \draw[fill=gold!] (0,0)++(-0.3+rand*0.15,-0.4-rand*0.15) circle (1pt and 0.5pt);
    }


    \end{tikzpicture}
\end{document}

答案2

有些人spy练习使用完全不同的颜色、形状和比例,只是为了复制我之前见过的病毒。

\documentclass[tikz]{standalone}
\usetikzlibrary{spy}
\definecolor{pantone 200}{RGB}{186,12,47}
\definecolor{pantone 280}{RGB}{0,32,91}
\begin{document}
\begin{tikzpicture}[spy using outlines={rectangle, magnification=4,width=11mm, height=8mm, connect spies}]
\fill[pantone 200] (0,0) rectangle (22mm,16mm);
\draw[white, line width=4mm] (0,8mm) -- ++(22mm,0) (8mm,0) -- ++(0mm,16mm);
\draw[pantone 280, line width=2mm] (0,8mm) -- ++(22mm,0) (8mm,0) -- ++(0mm,16mm);

\spy[draw=none] on (2mm,10mm) in node[label={[black, label distance=-2mm]90:IND}] at (-1.5,1.25);
\spy[draw=none] on (2mm,6mm) in node[label={[black, label distance=-2mm]90:POL}] at (-1.5,0);
\spy[draw=none] on (9.5mm,3mm) in node[label={[black, label distance=-2mm]90:FRA}] at (0,-1);
\spy[draw=none, magnification=3] on (12mm,9.5mm) in node[label={[black, label distance=-2mm]90:NLD}] at (3,1.25);
\spy[draw=none, magnification=2] on (8.5mm,8mm) in node[label={[black, label distance=-2mm]90:FIN}] at (1.2,2.5);
\spy[draw=none, magnification=1.5] on (18mm,8mm) in node[label={[black, label distance=-2mm]90:THA}] at (3,-0.5);

\end{tikzpicture}
\end{document}

在此处输入图片描述

答案3

这是巴西国旗(此处为高分辨率 PNG)

在此处输入图片描述

信息可以在这里找到维基百科关于文本定位请点击此处

\documentclass[border=0]{standalone}
\usepackage[scaled]{helvet}
\renewcommand\familydefault{\sfdefault}
\usepackage[T1]{fontenc}
\usepackage{tikz}
\usetikzlibrary{calc}

\definecolor{green} {RGB}{  0,156, 59}
\definecolor{yellow}{RGB}{255,223,  0}
\definecolor{blue}  {RGB}{  0, 39,118}

\newcommand{\wstar}[2]{%
  \fill[white]
  ($#1+(234:#2)$) --
  ($#1+( 90:#2)$) --
  ($#1+(306:#2)$) --
  ($#1+(162:#2)$) --
  ($#1+( 18:#2)$) --
  cycle;
}

\newcommand{\letter}[2][0]{%
  \rotatebox[origin=c]{#1}{%
    \resizebox{.3cm}{.33cm}{%
      \textcolor{green}{\textbf{#2}}%
}}}

\newcommand{\Eletter}[2][0]{%
  \rotatebox[origin=c]{#1}{%
    \resizebox{.25cm}{.3cm}{%
      \textcolor{green}{\textbf{#2}}%
}}}

\begin{document}
\begin{tikzpicture}[scale=1]

%% rectangle, losangle, circle
\fill[green]  (-10,-7) rectangle (10,7);
\fill[yellow] (0,-5.3) -- (-8.3,0) -- (0,5.3) -- (8.3,0) -- cycle;
\fill[blue]   (0,0)    circle    ( 3.5);

%% white band
\begin{scope}
    \clip        ( 0, 0) circle (3.5);
    \fill[white] (-2,-7) circle (8.5);
    \fill[blue]  (-2,-7) circle (8  );
\end{scope}

%% stars
\wstar{( 1.080, 1.100)}{0.15} % 1 Spica (α Virginis)
\wstar{(-2.860, 0.630)}{0.15} % 2 Procyon (α Canis Minoris)
\wstar{(-1.330,-0.140)}{0.12} % 3 Alphard (α Hydrae)
\wstar{( 0.950, 0.175)}{0.10} % 4 Dhanab al Shuja (γ Hydrae)
\wstar{(-2.550,-0.840)}{0.15} % 5 Sirius (α Canis Majoris)
\wstar{(-2.975,-1.155)}{0.12} % 6 Mirzam (β Canis Majoris)
\wstar{(-2.200,-0.630)}{0.07} % 7 Muliphen (γ Canis Majoris)
\wstar{(-1.820,-1.190)}{0.12} % 8 Wezen (δ Canis Majoris)
\wstar{(-1.920,-1.540)}{0.10} % 9 Adhara (ε Canis Majoris)
\wstar{(-1.405,-1.860)}{0.15} %10 Canopus (α Carinae)
\wstar{( 0.000,-0.560)}{0.12} %11 Gacrux (γ Crucis)
\wstar{(-0.351,-0.875)}{0.10} %12 Pálida (δ Crucis)
\wstar{(-0.175,-1.120)}{0.07} %13 Intrometida (ε Crucis)
\wstar{( 0.000,-1.575)}{0.15} %14 Acrux (α Crucis)
\wstar{( 0.407,-0.875)}{0.12} %15 Mimosa (β Crucis)
\wstar{( 2.455,-1.225)}{0.15} %16 Antares (α Scorpii)
\wstar{( 2.940,-1.260)}{0.10} %17 Graffias (β Scorpii)
\wstar{( 2.595,-1.535)}{0.12} %18 Wei (ε Scorpii)
\wstar{( 2.383,-1.822)}{0.12} %19 Shaula (λ Scorpii)
\wstar{( 2.100,-1.990)}{0.10} %20 Girtab (κ Scorpii)
\wstar{( 1.740,-1.930)}{0.10} %21 Denebakrab (μ Scorpii)
\wstar{( 1.755,-2.270)}{0.12} %22 Sargas (θ Scorpii)
\wstar{( 1.750,-2.625)}{0.10} %23 Apollyon (ι Scorpii)
\wstar{( 1.350,-2.050)}{0.10} %24 δ Trianguli Australis
\wstar{( 1.050,-2.356)}{0.12} %25 Atria (α Trianguli Australis)
\wstar{( 0.775,-1.960)}{0.10} %26 γ Trianguli Australis
\wstar{( 0.000,-2.740)}{0.05} %27 Polaris Australis (σ Octantis)

%% curved text 'ORDEM PROGRESSO'
\foreach \a/\l/\t in {%
  97.130000/O/ 7.130000,
  94.090000/R/ 4.090000,
  91.050000/D/ 1.050000,
  88.010000/E/-1.990000,
  84.970000/M/-5.030000,
%
  75.970000/P/-14.030000,
  72.846250/R/-17.153750,
  69.722500/O/-20.277500,
  66.598750/G/-23.401250,
  63.475000/R/-26.525000,
  60.351250/E/-29.648750,
  57.227500/S/-32.772500,
  54.103750/S/-35.896250,
  50.980000/O/-39.020000
}{%
  \node at ($(-2,-7)+(\a:8.25)$) {\letter[\t]{\l}};
}

%% curved text 'E' (smaller than other letters)
\foreach \a/\l/\t in {%
  80.470000/E/-9.530000
}{%
  \node at ($(-2,-7)+(\a:8.25)$) {\Eletter[\t]{\l}};
}

\end{tikzpicture}
\end{document}

答案4

简单点。现在每个国家都有正确的宽高比。那里的观众很难对付……

\documentclass{article}
\usepackage{calc}
\newlength{\barwidth}
\usepackage{tikz}
\usetikzlibrary{shapes.multipart,calc,shapes.geometric,positioning}
\usepackage{array}
\newcommand{\flagratio}[1]{\gdef\flrat{#1}\setlength{\barwidth}{\flrat pt*100/3}}
\flagratio{1}
\parindent=0pt
\begin{document}
\tikzset{
    horizontal stripes/.style={
        rectangle split, 
        rectangle split parts=3,
        draw,
        minimum width=100pt*\flrat,
        minimum height=100pt,
        rectangle split part fill={#1},
        inner sep=0pt,outer sep=0pt,
        name=flag},
    vertical stripes/.style={
        rectangle split,
        rectangle split horizontal, 
        rectangle split parts=3,
        draw,
        minimum width=100pt*\flrat,
        minimum height=100pt,
        text width=100pt*\flrat/3,
        rectangle split part fill={#1},
        inner sep=0pt,outer sep=0pt,
        name=flag},
    two stripes/.style={
        rectangle split, 
        rectangle split parts=2,
        draw,
        minimum width=150pt,
        minimum height=100pt,
        rectangle split part fill={#1},
        inner sep=0pt,outer sep=0pt}
    }
\newcommand{\vflag}[3][.5]{\flagratio{#2}\tikz[baseline]{\node[vertical stripes={#3},scale=#1](a){\rule{0pt}{\barwidth}\nodepart{two}\rule{0pt}{\barwidth}\nodepart{three}\rule{0pt}{\barwidth}};}}
\newcommand{\hflag}[3][.5]{\flagratio{#2}\tikz[baseline]{\node[horizontal stripes={#3},scale=#1](a){\rule{0pt}{33.3pt}\nodepart{two}\rule{0pt}{33.3pt}\nodepart{three}\rule{0pt}{33.3pt}};}}
\newcommand{\twobar}[3][.5]{\flagratio{#2}\tikz[baseline]{\node[two stripes={#3},scale=#1](a){\rule{0pt}{50pt}\nodepart{two}\rule{0pt}{50pt}};}}
\newcommand{\colombia}[1][.5]{\flagratio{1.5}\tikz[baseline]{\node[horizontal stripes={ColombiaYellow,ColombiaBlue,ColombiaRed},scale=#1](a){\rule{0pt}{50pt}\nodepart{two}\rule{0pt}{25pt}\nodepart{three}\rule{0pt}{25pt}};}}
\newcommand{\senegal}[1][.5]{\tikz[baseline]{\node[vertical stripes={SenegalGreen,SenegalYellow,SenegalRed},scale=#1](a){\rule{0pt}{\barwidth}\nodepart{two}\rule{0pt}{\barwidth}\nodepart{three}\rule{0pt}{\barwidth}};\node[star,fill=SenegalGreen,star point ratio=1.5,star point height=7.5pt,scale=.75] {};}}
\newcommand{\morocco}[1][.5]
{\flagratio{1.5}\tikz[baseline={(0,25pt)},scale=#1]{%
% Code here from https://tex.stackexchange.com/a/400055/2693
\pgfmathsetmacro{\ct}{.5} % distance center to tip
\pgfmathsetmacro{\cc}{\ct*sin(18)/sin(126)} % distance center to corner (sine rule)
\draw[rectangle,fill=MoroccoRed] (0pt,0pt) -- (0pt,100pt) -- (100pt*\flrat,100pt) -- (100pt*\flrat,0pt) -- cycle;
\draw[ultra thick,MoroccoGreen] (75pt,50pt)
    +(90-0*36:\ct) coordinate(T1)
    foreach[evaluate=\x as \nc using int((\x+1)/2),   % number for corner coordinates
            evaluate=\x as \nt using int((\x+1)/2+1)] % number for tip coordinates
        \x in {1,3,...,9}{
        -- +(90-\x*36:\cc) coordinate(C\nc) -- +({90-(\x+1)*36}:\ct) coordinate(T\nt)}
    -- cycle;
% the rest
\draw[ultra thick,MoroccoGreen] (C1) -- (C2) -- (C3) -- (C4) -- (C5) -- cycle;}}
\newcommand{\england}[1][.5]{\flagratio{1.667}\tikz[baseline={(0pt,25pt)},scale=#1]{
\draw[rectangle] (0pt,0pt) -- (0pt,100pt) -- (100pt*\flrat,100pt) -- (100pt*\flrat,0pt) -- cycle;
\draw[line width=20pt*#1,EnglishRed] (0pt,50pt) -- (100pt*\flrat,50pt);
\draw[line width=20pt*#1,EnglishRed] (50pt*\flrat,0pt) -- (50pt*\flrat,100pt);
}
}
\newcommand{\sweden}[1][.5]{\flagratio{1.6}\tikz[baseline={(0pt,25pt)},scale=#1]{%
\draw[rectangle,fill=SwedishBlue] (0pt,0pt) -- (0pt,100pt) -- (100pt*\flrat,100pt) -- (100pt*\flrat,0pt) -- cycle;
\draw[line width=20pt*#1,SwedishYellow] (0pt,50pt) -- (100pt*\flrat,50pt);
\draw[line width=20pt*#1,SwedishYellow] (37.5pt*\flrat,0pt) -- (37.5pt*\flrat,100pt);
}
}
\newcommand{\denmark}[1][.5]{\flagratio{1.321}\tikz[baseline={(0pt,25pt)},scale=#1]{%
\draw[rectangle,fill=DanishRed] (0pt,0pt) -- (0pt,100pt) -- (100pt*\flrat,100pt) -- (100pt*\flrat,0pt) -- cycle;
\draw[line width=14.28pt*#1,white] (0pt,50pt) -- (100pt*\flrat,50pt);
\draw[line width=14.28pt*#1,white] (37.8pt*\flrat,0pt) -- (37.8pt*\flrat,100pt);
}
}


\definecolor[named]{NigerianGreen}{RGB}{0,135,83}
\definecolor[named]{GermanGold}{RGB}{255,204,0}
\definecolor[named]{GermanRed}{RGB}{255,0,0}
\definecolor[named]{BelgianYellow}{RGB}{253,218,36}
\definecolor[named]{BelgianRed}{RGB}{239,51,64}
\definecolor[named]{FrenchBlue}{RGB}{0,85,164}
\definecolor[named]{FrenchRed}{RGB}{239,65,53}
\definecolor[named]{RussianBlue}{RGB}{0,57,166}
\definecolor[named]{RussianRed}{RGB}{213,43,30}
\definecolor[named]{PolishRed}{RGB}{220, 20, 60}
\definecolor[named]{ColombiaYellow}{RGB}{252,209,22}
\definecolor[named]{ColombiaBlue}{RGB}{0,56,147}
\definecolor[named]{ColombiaRed}{RGB}{206,17,38}
\definecolor[named]{SenegalGreen}{RGB}{0, 133, 63}
\definecolor[named]{SenegalYellow}{RGB}{253, 239, 66}
\definecolor[named]{SenegalRed}{RGB}{227, 27, 35}
\definecolor[named]{MoroccoRed}{RGB}{193, 39, 45}
\definecolor[named]{MoroccoGreen}{RGB}{0, 98, 51}
\definecolor[named]{EnglishRed}{RGB}{207, 8, 31}
\definecolor[named]{SwedishBlue}{RGB}{45, 95, 161}
\definecolor[named]{SwedishYellow}{RGB}{255, 202, 32}
\definecolor[named]{DanishRed}{RGB}{224, 24, 54}


\setlength{\extrarowheight}{30pt}
\begin{tabular}{p{1in}m{1.5in}p{1in}m{1.5in}}
France: & \vflag{1.5}{FrenchBlue,white,FrenchRed} &
Nigeria: & \vflag{2}{NigerianGreen,white,NigerianGreen}\\
Belgium: & \vflag{1.154}{black,BelgianYellow,BelgianRed} &
Russia: & \hflag{1.5}{white,RussianBlue,RussianRed}\\
Germany: & \hflag{1.667}{black,GermanRed,GermanGold} &
Poland: & \twobar{1.6}{white,PolishRed}\\
Colombia: & \colombia & 
Senegal: & \senegal \\
Morocco: & \morocco  & England & \england\\
Sweden & \sweden & Denmark & \denmark
\end{tabular}



\end{document}

代码输出

相关内容