Manipulate[Block[{ang:={
(*1*){42.383, 40.623},
(*2*){50.341, 53.520},
(*3*)180-{42.509, 38.047},
(*4*)180-{42.717, 48.420},
(*5*){52.969, 46.045},
(*6*){30.840, 38.973},
(*7*){294.41,303.55}-180,
(*8*)180-{17.71,28.02},
(*9*)180-{100.86,112.35},
(*10*){183.92,196.57}-180
}*Pi/180},

Ukraine2=Ukraine={{22.`,192.`},{31.`,224.`},{39.`,224.`},{39.`,237.`},{56.`,269.`},{77.`,286.`},{81.`,292.`},{77.`,298.`},{77.`,307.`},{71.`,315.`},{63.`,340.`},{69.`,343.`},{74.`,342.`},{86.`,348.`},{88.`,353.`},{113.`,359.`},{117.`,357.`},{131.`,358.`},{149.`,350.`},{158.`,351.`},{170.`,345.`},{173.`,339.`},{181.`,338.`},{187.`,332.`},{192.`,336.`},{198.`,335.`},{201.`,339.`},{209.`,335.`},{215.`,335.`},{220.`,331.`},{230.`,340.`},{238.`,334.`},{241.`,328.`},{245.`,330.`},{264.`,331.`},{270.`,327.`},{276.`,328.`},{276.`,339.`},{277.`,349.`},{291.`,364.`},{298.`,365.`},{303.`,368.`},{310.`,367.`},{317.`,364.`},{323.`,366.`},{328.`,373.`},{332.`,376.`},{344.`,374.`},{353.`,377.`},{361.`,375.`},{368.`,377.`},{380.`,371.`},{380.`,363.`},{390.`,353.`},{390.`,349.`},{381.`,346.`},{385.`,330.`},{400.`,324.`},{407.`,324.`},{412.`,322.`},{418.`,313.`},{421.`,302.`},{422.`,289.`},{429.`,285.`},{435.`,287.`},{441.`,286.`},{447.`,282.`},{452.`,283.`},{455.`,281.`},{475.`,288.`},{480.`,288.`},{495.`,266.`},{499.`,265.`},{500.`,269.`},{505.`,269.`},{517.`,262.`},{527.`,260.`},{535.`,255.`},{540.`,254.`},{546.`,250.`},{555.`,248.`},{561.`,247.`},{557.`,244.`},{560.`,233.`},{555.`,223.`},{548.`,221.`},{553.`,217.`},{556.`,214.`},{549.`,211.`},{546.`,206.`},{548.`,199.`},{550.`,193.`},{552.`,190.`},{548.`,169.`},{543.`,165.`},{535.`,166.`},{531.`,166.`},{524.`,170.`},{519.`,168.`},{515.`,161.`},{509.`,159.`},{503.`,150.`},{503.`,136.`},{484.`,133.`},{478.`,127.`},{465.`,123.`},{461.`,118.`},{456.`,120.`},{443.`,113.`},{432.`,112.`},{423.`,105.`},{417.`,99.`},{415.`,95.`},{409.`,91.`},{411.`,95.`},{415.`,102.`},{412.`,107.`},{409.`,99.`},{404.`,94.`},{404.`,82.`},{400.`,86.`},{399.`,91.`},{393.`,89.`},{392.`,93.`},{385.`,92.`},{382.`,99.`},{380.`,94.`},{374.`,94.`},{379.`,90.`},{383.`,81.`},{385.`,86.`},{394.`,83.`},{393.`,77.`},{398.`,77.`},{399.`,72.`},{404.`,72.`},{407.`,67.`},{409.`,60.`},{421.`,57.`},{423.`,60.`},{426.`,56.`},{433.`,62.`},{437.`,60.`},{449.`,64.`},{455.`,62.`},{451.`,55.`},{452.`,47.`},{443.`,46.`},{440.`,44.`},{425.`,48.`},{421.`,49.`},{409.`,35.`},{400.`,36.`},{394.`,33.`},{394.`,29.`},{391.`,31.`},{387.`,24.`},{380.`,20.`},{372.`,18.`},{366.`,22.`},{361.`,25.`},{363.`,30.`},{363.`,40.`},{362.`,50.`},{357.`,51.`},{351.`,53.`},{345.`,58.`},{335.`,60.`},{341.`,66.`},{345.`,73.`},{352.`,79.`},{366.`,82.`},{369.`,84.`},{366.`,90.`},{362.`,89.`},{357.`,92.`},{353.`,93.`},{345.`,90.`},{335.`,89.`},{322.`,95.`},{312.`,96.`},{320.`,104.`},{309.`,107.`},{312.`,110.`},{325.`,109.`},{320.`,112.`},{316.`,118.`},{307.`,113.`},{306.`,118.`},{301.`,114.`},{282.`,108.`},{277.`,98.`},{271.`,97.`},{269.`,90.`},{264.`,81.`},{257.`,79.`},{251.`,72.`},{248.`,77.`},{248.`,62.`},{241.`,62.`},{230.`,59.`},{222.`,56.`},{214.`,56.`},{210.`,61.`},{204.`,64.`},{208.`,65.`},{210.`,69.`},{212.`,76.`},{217.`,79.`},{217.`,85.`},{224.`,88.`},{226.`,100.`},{230.`,105.`},{233.`,108.`},{235.`,105.`},{239.`,107.`},{248.`,104.`},{253.`,104.`},{256.`,109.`},{255.`,115.`},{255.`,122.`},{248.`,128.`},{241.`,139.`},{243.`,145.`},{238.`,147.`},{232.`,152.`},{232.`,173.`},{227.`,174.`},{219.`,181.`},{209.`,181.`},{205.`,182.`},{191.`,191.`},{183.`,194.`},{176.`,194.`},{170.`,191.`},{165.`,194.`},{157.`,188.`},{157.`,184.`},{152.`,184.`},{134.`,173.`},{119.`,172.`},{109.`,166.`},{104.`,167.`},{98.`,173.`},{47.`,173.`},{42.`,172.`},{42.`,176.`},{23.`,190.`}};
Ukraine2:=Table[{Ukraine[[i,1]]-shiftX,Ukraine[[i,2]]-shiftY},{i,1,Length[Ukraine]}]/koef;
koef=500;
shiftX=270;
shiftY=-300;gUk:=Graphics[{Yellow,Polygon[Ukraine2],Red,Disk[{272.5-shiftX,288.5-shiftY}/koef,5/koef],Blue,Style[Text["Ukraine",{300-shiftX,220-shiftY}/koef],Bold,16],Blue,Line[Ukraine2]}];

rainb[k_,ar_,av_,r_,inf_,dr_:0.03,imax_:20,inf4_:True,lighterR_:0]:=Graphics[{Orange,Text[Style[If[inf4,"Multiple rainbows",""],22,Bold],{-0.2,1.3 }],Black,Table[{Thickness[dr],Opacity[Interpolation[Table[1-0.99(((2(i-imax/2.)/imax))^2),{i,0,imax}]][i],Lighter[ColorData["Rainbow"][If[k==1,((((i-1)/(imax-1)))^(3/4)),((((imax+1-i)/(imax)))^0.5)]],lighterR]],Circle[{0,0},r+i dr If[k==1,Interpolation[Table[1.2+0.5(((2(i-imax/2.)/imax))^2),{i,0,imax}]][i],Interpolation[Table[1.2+0.2(((2(i+5-imax/2.)/imax))^2),{i,0,imax}]][i]],{av,ar}]},{i,1,imax}],Text[If[inf,k,""],{0.97r Cos[(ar+av)/2],0.97r Sin[(ar+av)/2]}]},Axes->False ];


SchemeDrop[centr_List,rad_,n_]:=
Block[{
arr=rad*
{
{{-2,0.86},{-0.53,0.86},{0.92,0.37},{0.22,-0.98},{-1.1,-2.2}},
{{-1.5,-0.946},{-0.33,-0.946},{0.95,-0.35},{0.38,0.98},{-0.98,0.38},{-2.3,-1.5}},
{{-2,-0.973},{-0.25,-0.973},{0.95,-0.3},{0.3,0.94},{-0.93,0.37},{-0.47,-0.88},{0.9,-2}},
{{-2,0.973},{-0.25,0.973},{0.93,0.3},{0.32,-0.94},{-0.93,-0.37},{-0.5,0.88},{0.82,0.55},{1.9,-0.45}}
}
},
sum[a_List,b_List]:=Table[{a[[1]]+b[[i,1]],a[[2]]+b[[i,2]]},{i,1,Length[b]}];

{Lighter[ColorData["Legacy"]["LightSkyBlue"],.6],
Disk[centr,rad],Blue,Circle[centr,rad], Hue[0.12],Thickness[0.003],Arrowheads[0.03],
Arrow[sum[centr,arr[[n]]]]
}];

circ[r_,alf_,inf_]:=Graphics[If[inf,{If[alf<90,Text["φ",{0.1,0.04}],Text["φ",{-0.1,0.04}]],Dashed,LightGray,Line[{{-1.2,0},{-0.1,0}}],Line[{{0.1,0},{1.2,0}}],If[alf>90,Circle[{0,0},0.2,{Pi alf/180,Pi}],Circle[{0,0},0.2,{0,Pi alf/180}]],Table[Circle[{0,0},0.97r+0.02i,{0,Pi}],{i,1,10}]},{Black}]];
man[h_,w_,y0_:0.25, a_:Pi/10]:=
Graphics[{
(*mouth*)Line[RotationTransform[a,{0,1.2h-y0}][{{0.6w,1.15h-y0},{0.9w,1.15h-y0}}]],
(*blue eyes*)Hue[0.6],Disk[RotationTransform[a,{0,1.2h-y0}][{0.5w,1.2h-y0+0.25w}],0.2w],Black,Line[RotationTransform[a,{0,1.2h-y0}][{{0.6w,1.28h-y0},{0.28w,1.23h-y0},{0.6w,1.23h-y0}}]],
(*nose*),Line[RotationTransform[a,{0,1.2h-y0}][{{1.1w,1.19h-y0},{1.3w,1.2h-y0},{0.9w,1.27h-y0}}]],
(*head*)Circle[{0,1.2h-y0},w],
(*body*)Circle[{0,2h/3-y0},{w,h/3}],
(*legs*),Line[{{-w,0-y0},{-w/3,h/3-y0}}],Line[{{w,0-y0},{w/3,h/3-y0}}],
(*arms*)Line[{{-w,4h/5-y0},{-2w,h/2-y0}}],Line[{{w,4h/5-y0},{2w,h/2-y0}}],
(*foot*)Line[{{-0.8w,0-y0},{-1.5w,0-y0}}]  ,Line[{{0.8w,0-y0},{1.5w,0-y0}}],
(*neck*)Line[{{-w/5,h-y0},{-w/5,1.05h-y0}}],Line[{{w/5,h-y0},{w/5,1.05h-y0}}]  }];
sun[x0_,l_,n_:10,inf4_:True]:=Graphics[{Hue[0.1],Text[Style[Rotate[If[inf4,"S u n l i g h t","Сонячні промені"],Pi/2],16,Bold],{0.97x0,0.6}],Hue[0.12],Thickness[0.0015],Arrowheads[0.015],Table[ Arrow[{{0.95x0,1.2 i/n},{x0+l,1.2 i/n}}],{i,1,n}]}];
rainb[k_,ar_,av_,r_,inf_,dr_:0.03,imax_:20,inf4_:True]:=Graphics[{Orange,Text[Style[If[inf4,"Multiple rainbows","Багатократна Веселка"],22,Bold],{-0.2,1.3 }],Black,Table[{Thickness[dr],ColorData["Rainbow"][(i-1)/(imax-1)],Circle[{0,0},r,{av+(i-1)(ar-av)/imax,av+ i (ar-av)/imax}]},{i,1,imax}],Text[If[inf,k,""],{0.97r Cos[(ar+av)/2],0.97r Sin[(ar+av)/2]}]},PlotRange->{{0,1},{0,2}},Axes->False ];

VisionLine[r_,alf_,inf_,inf4_:True]:=Graphics[
{Text[Style[If[inf,"φ="<>ToString[If[alf<90,alf,180-alf]]<>"°",""],18],{0,r/2}],
If[inf&&(alf>ang[[1,2]]*180/Pi)&&(alf<ang[[1,1]]*180/Pi),SchemeDrop[{1.,1.2},0.15,1]],
If[inf&&(alf>ang[[2,1]]*180/Pi)&&(alf<ang[[2,2]]*180/Pi),SchemeDrop[{1.,1.2},0.15,2]],
If[inf&&(alf>ang[[3,1]]*180/Pi)&&(alf<ang[[3,2]]*180/Pi),SchemeDrop[{-1.,1.2},0.15,3]],
If[inf&&(alf>ang[[4,2]]*180/Pi)&&(alf<ang[[4,1]]*180/Pi),SchemeDrop[{-1.,1.2},0.15,4]],
Gray,Dashed,Line[{0.05r{Cos[Pi alf/180],Sin[Pi alf/180]},1.2r{Cos[Pi alf/180],Sin[Pi alf/180]}}],
If[inf&&(alf>ang[[1,2]]*180/Pi)&&(alf<ang[[1,1]]*180/Pi),Text[Style[Rotate[If[inf4,"The primary rainbow","Головна веселка"],alf/180 Pi],14], {r/2.5,r Tan[alf/180 Pi]/2.2}]],
If[inf&&(alf>ang[[2,1]]*180/Pi)&&(alf<ang[[2,2]]*180/Pi),Text[Style[Rotate[If[inf4,"The secondary rainbow","Вторинна веселка"],alf/180 Pi],14], {r/3,r Tan[alf/180 Pi]/2.6}]]
}];
If[!inf5,

  Show[{VisionLine[1,alf,inf1,inf4],sun[-1.7,0.4,10,inf4],man[0.2,0.03,0.25,alf/180 Pi],circ[1,alf,inf3],Table[rainb[i,ang[[i,1]],ang[[i,2]],1+0.02(i-1),inf2,0.007,50,inf4],{i,1,10}]},PlotRange->{{-1.7,1.2},{-0.31,1.4}},ImageSize->800, Axes->False],

	Show[{
	Graphics[{
	Lighter[RGBColor[0.1,0.3,0.6],0.8],
Polygon[{{-2.4,0},{-2.4,2.4},{2.0,2.4},{2.0,0}}], 
	 Lighter[RGBColor[0.1,0.1,0.3],0.7],
Disk[{0,0},1.9,{0,Pi}],
	Lighter[RGBColor[0.1,0.1,0.6],0.9],
Disk[{0,0},1.46,{0,Pi}]}],
	rainb[2,0,Pi,1.8,False,0.004,30,False,0.6],
	rainb[1,0,Pi,1.45,False,0.0024,30,False,0.4],
	gUk},PlotRange->{0.6,2.1},ImageSize->800]

]],
Row[{
Control[{{inf1, True, "info"}, {True, False}}],
Control[{{inf2, True, "      rainbow order"}, {True, False}}],
Control[{{inf3, False, "        circles"}, {True, False}}],
Control[{{inf4, True, "        English"}, {True, False}}],
Control[{{inf5, False, "                        Demo  Primary & Secondary Bow"}, {True, False}}]
}],
Row[{
Control[{{alf,41," order of rainbow"},{42->"1",51->"2",140->"3",135->"4",49->"5",35->"6"},ControlType->Setter}],
Control[{{alf,41,"             angle of view"},0,180,0.1,Appearance->"Labeled",ImageSize->Medium }]

}],
Bookmarks->{"DEMO rainbow 1 & 2":>{inf5=True},
"rainbow 1":>{alf=42,inf5=False},
"rainbow 2":>{alf=51,inf5=False},
"rainbow 3":>{alf=180-40,inf5=False},
"rainbow 4":>{alf=180-45,inf5=False}},
TrackedSymbols:>{alf,inf1,inf2,inf3,inf4,inf5},SaveDefinitions->True

]