File:MapAfricaSize.gif
Comparing without considering lines of longitude. Africa is on the equator.
Summary
| Description |
English: Comparison of Africa size with other continents |
| Date | |
| Source | https://twitter.com/j_bertolotti/status/1258391481922080773 |
| Author | Jacopo Bertolotti |
| Permission (Reusing this file) |
https://twitter.com/j_bertolotti/status/1030470604418428929 |
Mathematica 12.0 code
(*Beware! The code is not optimized at all!*)
sinstep[t_] := Sin[\[Pi]/2 t]^2;
stopstep[t_] := t (2 - t);
bouncestep[t_] := 1 - Sin[\[Pi]/(2 (1 - t))] (1 - t)^2; (**beware of
p0 = Table[
Graphics @@ GeoGraphics[GeoRange -> "World", GeoProjection -> {"Orthographic", "Centering" -> (stopstep[t] ({0, 360 + 20} - c1) + c1) }, GeoGridLines -> Automatic, GeoZoomLevel -> 2, Background -> Black]
, {t, 0, 1, 0.02}];
p1 = Table[Show[
Graphics @@ GeoGraphics[GeoRange -> "World", GeoProjection -> {"Orthographic", "Centering" -> c2}, GeoGridLines -> Automatic, GeoZoomLevel -> 2, Background -> Black]
,
Graphics @@ GeoGraphics[{GeoStyling[Automatic, {Opacity[0.5*sinstep[t]], Purple}], Polygon[\!\(\*
NamespaceBox["LinguisticAssistant",
DynamicModuleBox[{Typeset`query$$ = "Africa", Typeset`boxes$$ =
TemplateBox[{"\"Africa\"",
RowBox[{"Entity", "[",
RowBox[{"\"GeographicRegion\"", ",", "\"Africa\""}], "]"}],
"\"Entity[\\\"GeographicRegion\\\", \\\"Africa\\\"]\"",
"\"geographic region\""}, "Entity"],
Typeset`allassumptions$$ = {{
"type" -> "Clash", "word" -> "Africa",
"template" -> "Assuming \"${word}\" is ${desc1}. Use as \
${desc2} instead", "count" -> "3",
"Values" -> {{
"name" -> "GeographicRegion", "desc" -> "a continent",
"input" -> "*C.Africa-_*GeographicRegion-"}, {
"name" -> "CountryClass",
"desc" -> "a class of countries",
"input" -> "*C.Africa-_*CountryClass-"}, {
"name" -> "GivenName", "desc" -> "a given name",
"input" -> "*C.Africa-_*GivenName-"}}}},
Typeset`assumptions$$ = {}, Typeset`open$$ = {1, 2},
Typeset`querystate$$ = {
"Online" -> True, "Allowed" -> True,
"mparse.jsp" -> 0.777247`6.342104047934638,
"Messages" -> {}}},
DynamicBox[ToBoxes[
AlphaIntegration`LinguisticAssistantBoxes["", 4, Automatic,
Dynamic[Typeset`query$$],
Dynamic[Typeset`boxes$$],
Dynamic[Typeset`allassumptions$$],
Dynamic[Typeset`assumptions$$],
Dynamic[Typeset`open$$],
Dynamic[Typeset`querystate$$]], StandardForm],
ImageSizeCache->{202.2265625, {8.11328125, 18.11328125}},
TrackedSymbols:>{
Typeset`query$$, Typeset`boxes$$,
Typeset`allassumptions$$, Typeset`assumptions$$,
Typeset`open$$, Typeset`querystate$$}],
DynamicModuleValues:>{},
UndoTrackedVariables:>{Typeset`open$$}],
BaseStyle->{"Deploy"},
DeleteWithContents->True,
Editable->False,
SelectWithContents->True]\)]}, GeoRange -> "World",
GeoProjection -> {"Orthographic", "Centering" -> c2,
GeoZoomLevel -> 1}, Background -> None, GeoBackground -> None]
]
, {t, 0, 1, 0.1}];
p2 = Table[Show[
Graphics @@
GeoGraphics[GeoRange -> "World",
GeoProjection -> {"Orthographic",
"Centering" -> bouncestep[t]*(c5 - c2) + c2 }
, GeoGridLines -> Automatic, GeoZoomLevel -> 2,
Background -> Black]
,
Graphics @@
GeoGraphics[{GeoStyling[Automatic, {Opacity[0.5], Purple}],
Polygon[\!\(\*
NamespaceBox["LinguisticAssistant",
DynamicModuleBox[{Typeset`query$$ = "Africa", Typeset`boxes$$ =
TemplateBox[{"\"Africa\"",
RowBox[{"Entity", "[",
RowBox[{"\"GeographicRegion\"", ",", "\"Africa\""}], "]"}],
"\"Entity[\\\"GeographicRegion\\\", \\\"Africa\\\"]\"",
"\"geographic region\""}, "Entity"],
Typeset`allassumptions$$ = {{
"type" -> "Clash", "word" -> "Africa",
"template" -> "Assuming \"${word}\" is ${desc1}. Use as \
${desc2} instead", "count" -> "3",
"Values" -> {{
"name" -> "GeographicRegion", "desc" -> "a continent",
"input" -> "*C.Africa-_*GeographicRegion-"}, {
"name" -> "CountryClass",
"desc" -> "a class of countries",
"input" -> "*C.Africa-_*CountryClass-"}, {
"name" -> "GivenName", "desc" -> "a given name",
"input" -> "*C.Africa-_*GivenName-"}}}},
Typeset`assumptions$$ = {}, Typeset`open$$ = {1, 2},
Typeset`querystate$$ = {
"Online" -> True, "Allowed" -> True,
"mparse.jsp" -> 0.777247`6.342104047934638,
"Messages" -> {}}},
DynamicBox[ToBoxes[
AlphaIntegration`LinguisticAssistantBoxes["", 4, Automatic,
Dynamic[Typeset`query$$],
Dynamic[Typeset`boxes$$],
Dynamic[Typeset`allassumptions$$],
Dynamic[Typeset`assumptions$$],
Dynamic[Typeset`open$$],
Dynamic[Typeset`querystate$$]], StandardForm],
ImageSizeCache->{202.2265625, {8.11328125, 18.11328125}},
TrackedSymbols:>{
Typeset`query$$, Typeset`boxes$$,
Typeset`allassumptions$$, Typeset`assumptions$$,
Typeset`open$$, Typeset`querystate$$}],
DynamicModuleValues:>{},
UndoTrackedVariables:>{Typeset`open$$}],
BaseStyle->{"Deploy"},
DeleteWithContents->True,
Editable->False,
SelectWithContents->True]\)]}, GeoRange -> "World",
GeoProjection -> {"Orthographic", "Centering" -> {0, 20},
GeoZoomLevel -> 1}, Background -> None,
GeoBackground -> None]
]
, {t, 0, 1, 0.051}];
p3 = Table[Show[
Graphics @@
GeoGraphics[GeoRange -> "World",
GeoProjection -> {"Orthographic",
"Centering" -> bouncestep[t]*(c3 - c5) + c5 }
, GeoGridLines -> Automatic, GeoZoomLevel -> 2,
Background -> Black]
,
Graphics @@
GeoGraphics[{GeoStyling[Automatic, {Opacity[0.5], Purple}],
Polygon[\!\(\*
NamespaceBox["LinguisticAssistant",
DynamicModuleBox[{Typeset`query$$ = "Africa", Typeset`boxes$$ =
TemplateBox[{"\"Africa\"",
RowBox[{"Entity", "[",
RowBox[{"\"GeographicRegion\"", ",", "\"Africa\""}], "]"}],
"\"Entity[\\\"GeographicRegion\\\", \\\"Africa\\\"]\"",
"\"geographic region\""}, "Entity"],
Typeset`allassumptions$$ = {{
"type" -> "Clash", "word" -> "Africa",
"template" -> "Assuming \"${word}\" is ${desc1}. Use as \
${desc2} instead", "count" -> "3",
"Values" -> {{
"name" -> "GeographicRegion", "desc" -> "a continent",
"input" -> "*C.Africa-_*GeographicRegion-"}, {
"name" -> "CountryClass",
"desc" -> "a class of countries",
"input" -> "*C.Africa-_*CountryClass-"}, {
"name" -> "GivenName", "desc" -> "a given name",
"input" -> "*C.Africa-_*GivenName-"}}}},
Typeset`assumptions$$ = {}, Typeset`open$$ = {1, 2},
Typeset`querystate$$ = {
"Online" -> True, "Allowed" -> True,
"mparse.jsp" -> 0.777247`6.342104047934638,
"Messages" -> {}}},
DynamicBox[ToBoxes[
AlphaIntegration`LinguisticAssistantBoxes["", 4, Automatic,
Dynamic[Typeset`query$$],
Dynamic[Typeset`boxes$$],
Dynamic[Typeset`allassumptions$$],
Dynamic[Typeset`assumptions$$],
Dynamic[Typeset`open$$],
Dynamic[Typeset`querystate$$]], StandardForm],
ImageSizeCache->{202.2265625, {8.11328125, 18.11328125}},
TrackedSymbols:>{
Typeset`query$$, Typeset`boxes$$,
Typeset`allassumptions$$, Typeset`assumptions$$,
Typeset`open$$, Typeset`querystate$$}],
DynamicModuleValues:>{},
UndoTrackedVariables:>{Typeset`open$$}],
BaseStyle->{"Deploy"},
DeleteWithContents->True,
Editable->False,
SelectWithContents->True]\)]}, GeoRange -> "World",
GeoProjection -> {"Orthographic", "Centering" -> {0, 20},
GeoZoomLevel -> 1}, Background -> None,
GeoBackground -> None]
]
, {t, 0, 1, 0.051}];
p4 = Table[Show[
Graphics @@
GeoGraphics[GeoRange -> "World",
GeoProjection -> {"Orthographic",
"Centering" -> bouncestep[t]*(c4 - c3) + c3 }
, GeoGridLines -> Automatic, GeoZoomLevel -> 2,
Background -> Black]
,
Graphics @@
GeoGraphics[{GeoStyling[Automatic, {Opacity[0.5], Purple}],
Polygon[\!\(\*
NamespaceBox["LinguisticAssistant",
DynamicModuleBox[{Typeset`query$$ = "Africa", Typeset`boxes$$ =
TemplateBox[{"\"Africa\"",
RowBox[{"Entity", "[",
RowBox[{"\"GeographicRegion\"", ",", "\"Africa\""}], "]"}],
"\"Entity[\\\"GeographicRegion\\\", \\\"Africa\\\"]\"",
"\"geographic region\""}, "Entity"],
Typeset`allassumptions$$ = {{
"type" -> "Clash", "word" -> "Africa",
"template" -> "Assuming \"${word}\" is ${desc1}. Use as \
${desc2} instead", "count" -> "3",
"Values" -> {{
"name" -> "GeographicRegion", "desc" -> "a continent",
"input" -> "*C.Africa-_*GeographicRegion-"}, {
"name" -> "CountryClass",
"desc" -> "a class of countries",
"input" -> "*C.Africa-_*CountryClass-"}, {
"name" -> "GivenName", "desc" -> "a given name",
"input" -> "*C.Africa-_*GivenName-"}}}},
Typeset`assumptions$$ = {}, Typeset`open$$ = {1, 2},
Typeset`querystate$$ = {
"Online" -> True, "Allowed" -> True,
"mparse.jsp" -> 0.777247`6.342104047934638,
"Messages" -> {}}},
DynamicBox[ToBoxes[
AlphaIntegration`LinguisticAssistantBoxes["", 4, Automatic,
Dynamic[Typeset`query$$],
Dynamic[Typeset`boxes$$],
Dynamic[Typeset`allassumptions$$],
Dynamic[Typeset`assumptions$$],
Dynamic[Typeset`open$$],
Dynamic[Typeset`querystate$$]], StandardForm],
ImageSizeCache->{202.2265625, {8.11328125, 18.11328125}},
TrackedSymbols:>{
Typeset`query$$, Typeset`boxes$$,
Typeset`allassumptions$$, Typeset`assumptions$$,
Typeset`open$$, Typeset`querystate$$}],
DynamicModuleValues:>{},
UndoTrackedVariables:>{Typeset`open$$}],
BaseStyle->{"Deploy"},
DeleteWithContents->True,
Editable->False,
SelectWithContents->True]\)]}, GeoRange -> "World",
GeoProjection -> {"Orthographic", "Centering" -> {0, 20},
GeoZoomLevel -> 1}, Background -> None,
GeoBackground -> None]
]
, {t, 0, 1, 0.051}];
p5 = Table[Show[
Graphics @@
GeoGraphics[GeoRange -> "World",
GeoProjection -> {"Orthographic",
"Centering" -> bouncestep[t]*(c6 - c4) + c4 }
, GeoGridLines -> Automatic, GeoZoomLevel -> 2,
Background -> Black]
,
Graphics @@
GeoGraphics[{GeoStyling[Automatic, {Opacity[0.5], Purple}],
Polygon[\!\(\*
NamespaceBox["LinguisticAssistant",
DynamicModuleBox[{Typeset`query$$ = "Africa", Typeset`boxes$$ =
TemplateBox[{"\"Africa\"",
RowBox[{"Entity", "[",
RowBox[{"\"GeographicRegion\"", ",", "\"Africa\""}], "]"}],
"\"Entity[\\\"GeographicRegion\\\", \\\"Africa\\\"]\"",
"\"geographic region\""}, "Entity"],
Typeset`allassumptions$$ = {{
"type" -> "Clash", "word" -> "Africa",
"template" -> "Assuming \"${word}\" is ${desc1}. Use as \
${desc2} instead", "count" -> "3",
"Values" -> {{
"name" -> "GeographicRegion", "desc" -> "a continent",
"input" -> "*C.Africa-_*GeographicRegion-"}, {
"name" -> "CountryClass",
"desc" -> "a class of countries",
"input" -> "*C.Africa-_*CountryClass-"}, {
"name" -> "GivenName", "desc" -> "a given name",
"input" -> "*C.Africa-_*GivenName-"}}}},
Typeset`assumptions$$ = {}, Typeset`open$$ = {1, 2},
Typeset`querystate$$ = {
"Online" -> True, "Allowed" -> True,
"mparse.jsp" -> 0.777247`6.342104047934638,
"Messages" -> {}}},
DynamicBox[ToBoxes[
AlphaIntegration`LinguisticAssistantBoxes["", 4, Automatic,
Dynamic[Typeset`query$$],
Dynamic[Typeset`boxes$$],
Dynamic[Typeset`allassumptions$$],
Dynamic[Typeset`assumptions$$],
Dynamic[Typeset`open$$],
Dynamic[Typeset`querystate$$]], StandardForm],
ImageSizeCache->{202.2265625, {8.11328125, 18.11328125}},
TrackedSymbols:>{
Typeset`query$$, Typeset`boxes$$,
Typeset`allassumptions$$, Typeset`assumptions$$,
Typeset`open$$, Typeset`querystate$$}],
DynamicModuleValues:>{},
UndoTrackedVariables:>{Typeset`open$$}],
BaseStyle->{"Deploy"},
DeleteWithContents->True,
Editable->False,
SelectWithContents->True]\)]}, GeoRange -> "World",
GeoProjection -> {"Orthographic", "Centering" -> {0, 20},
GeoZoomLevel -> 1}, Background -> None,
GeoBackground -> None]
]
, {t, 0, 1, 0.051}];
p6 = Table[Show[
Graphics @@
GeoGraphics[GeoRange -> "World",
GeoProjection -> {"Orthographic",
"Centering" -> bouncestep[t]*(c7 - c6) + c6 }
, GeoGridLines -> Automatic, GeoZoomLevel -> 2,
Background -> Black]
,
Graphics @@
GeoGraphics[{GeoStyling[Automatic, {Opacity[0.5], Purple}],
Polygon[\!\(\*
NamespaceBox["LinguisticAssistant",
DynamicModuleBox[{Typeset`query$$ = "Africa", Typeset`boxes$$ =
TemplateBox[{"\"Africa\"",
RowBox[{"Entity", "[",
RowBox[{"\"GeographicRegion\"", ",", "\"Africa\""}], "]"}],
"\"Entity[\\\"GeographicRegion\\\", \\\"Africa\\\"]\"",
"\"geographic region\""}, "Entity"],
Typeset`allassumptions$$ = {{
"type" -> "Clash", "word" -> "Africa",
"template" -> "Assuming \"${word}\" is ${desc1}. Use as \
${desc2} instead", "count" -> "3",
"Values" -> {{
"name" -> "GeographicRegion", "desc" -> "a continent",
"input" -> "*C.Africa-_*GeographicRegion-"}, {
"name" -> "CountryClass",
"desc" -> "a class of countries",
"input" -> "*C.Africa-_*CountryClass-"}, {
"name" -> "GivenName", "desc" -> "a given name",
"input" -> "*C.Africa-_*GivenName-"}}}},
Typeset`assumptions$$ = {}, Typeset`open$$ = {1, 2},
Typeset`querystate$$ = {
"Online" -> True, "Allowed" -> True,
"mparse.jsp" -> 0.777247`6.342104047934638,
"Messages" -> {}}},
DynamicBox[ToBoxes[
AlphaIntegration`LinguisticAssistantBoxes["", 4, Automatic,
Dynamic[Typeset`query$$],
Dynamic[Typeset`boxes$$],
Dynamic[Typeset`allassumptions$$],
Dynamic[Typeset`assumptions$$],
Dynamic[Typeset`open$$],
Dynamic[Typeset`querystate$$]], StandardForm],
ImageSizeCache->{202.2265625, {8.11328125, 18.11328125}},
TrackedSymbols:>{
Typeset`query$$, Typeset`boxes$$,
Typeset`allassumptions$$, Typeset`assumptions$$,
Typeset`open$$, Typeset`querystate$$}],
DynamicModuleValues:>{},
UndoTrackedVariables:>{Typeset`open$$}],
BaseStyle->{"Deploy"},
DeleteWithContents->True,
Editable->False,
SelectWithContents->True]\)]}, GeoRange -> "World",
GeoProjection -> {"Orthographic", "Centering" -> {0, 20},
GeoZoomLevel -> 1}, Background -> None,
GeoBackground -> None]
]
, {t, 0, 1, 0.051}];
p7 = Table[Show[
Graphics @@
GeoGraphics[GeoRange -> "World",
GeoProjection -> {"Orthographic",
"Centering" -> bouncestep[t]*(c8 - c7) + c7 }
, GeoGridLines -> Automatic, GeoZoomLevel -> 2,
Background -> Black]
,
Graphics @@
GeoGraphics[{GeoStyling[Automatic, {Opacity[0.5], Purple}],
Polygon[\!\(\*
NamespaceBox["LinguisticAssistant",
DynamicModuleBox[{Typeset`query$$ = "Africa", Typeset`boxes$$ =
TemplateBox[{"\"Africa\"",
RowBox[{"Entity", "[",
RowBox[{"\"GeographicRegion\"", ",", "\"Africa\""}], "]"}],
"\"Entity[\\\"GeographicRegion\\\", \\\"Africa\\\"]\"",
"\"geographic region\""}, "Entity"],
Typeset`allassumptions$$ = {{
"type" -> "Clash", "word" -> "Africa",
"template" -> "Assuming \"${word}\" is ${desc1}. Use as \
${desc2} instead", "count" -> "3",
"Values" -> {{
"name" -> "GeographicRegion", "desc" -> "a continent",
"input" -> "*C.Africa-_*GeographicRegion-"}, {
"name" -> "CountryClass",
"desc" -> "a class of countries",
"input" -> "*C.Africa-_*CountryClass-"}, {
"name" -> "GivenName", "desc" -> "a given name",
"input" -> "*C.Africa-_*GivenName-"}}}},
Typeset`assumptions$$ = {}, Typeset`open$$ = {1, 2},
Typeset`querystate$$ = {
"Online" -> True, "Allowed" -> True,
"mparse.jsp" -> 0.777247`6.342104047934638,
"Messages" -> {}}},
DynamicBox[ToBoxes[
AlphaIntegration`LinguisticAssistantBoxes["", 4, Automatic,
Dynamic[Typeset`query$$],
Dynamic[Typeset`boxes$$],
Dynamic[Typeset`allassumptions$$],
Dynamic[Typeset`assumptions$$],
Dynamic[Typeset`open$$],
Dynamic[Typeset`querystate$$]], StandardForm],
ImageSizeCache->{202.2265625, {8.11328125, 18.11328125}},
TrackedSymbols:>{
Typeset`query$$, Typeset`boxes$$,
Typeset`allassumptions$$, Typeset`assumptions$$,
Typeset`open$$, Typeset`querystate$$}],
DynamicModuleValues:>{},
UndoTrackedVariables:>{Typeset`open$$}],
BaseStyle->{"Deploy"},
DeleteWithContents->True,
Editable->False,
SelectWithContents->True]\)]}, GeoRange -> "World",
GeoProjection -> {"Orthographic", "Centering" -> {0, 20},
GeoZoomLevel -> 1}, Background -> None,
GeoBackground -> None]
]
, {t, 0, 1, 0.051}];
p8 = Table[Show[
Graphics @@
GeoGraphics[GeoRange -> "World",
GeoProjection -> {"Orthographic",
"Centering" -> bouncestep[t]*(c2 - c8) + c8 }
, GeoGridLines -> Automatic, GeoZoomLevel -> 2,
Background -> Black]
,
Graphics @@
GeoGraphics[{GeoStyling[Automatic, {Opacity[0.5], Purple}],
Polygon[\!\(\*
NamespaceBox["LinguisticAssistant",
DynamicModuleBox[{Typeset`query$$ = "Africa", Typeset`boxes$$ =
TemplateBox[{"\"Africa\"",
RowBox[{"Entity", "[",
RowBox[{"\"GeographicRegion\"", ",", "\"Africa\""}], "]"}],
"\"Entity[\\\"GeographicRegion\\\", \\\"Africa\\\"]\"",
"\"geographic region\""}, "Entity"],
Typeset`allassumptions$$ = {{
"type" -> "Clash", "word" -> "Africa",
"template" -> "Assuming \"${word}\" is ${desc1}. Use as \
${desc2} instead", "count" -> "3",
"Values" -> {{
"name" -> "GeographicRegion", "desc" -> "a continent",
"input" -> "*C.Africa-_*GeographicRegion-"}, {
"name" -> "CountryClass",
"desc" -> "a class of countries",
"input" -> "*C.Africa-_*CountryClass-"}, {
"name" -> "GivenName", "desc" -> "a given name",
"input" -> "*C.Africa-_*GivenName-"}}}},
Typeset`assumptions$$ = {}, Typeset`open$$ = {1, 2},
Typeset`querystate$$ = {
"Online" -> True, "Allowed" -> True,
"mparse.jsp" -> 0.777247`6.342104047934638,
"Messages" -> {}}},
DynamicBox[ToBoxes[
AlphaIntegration`LinguisticAssistantBoxes["", 4, Automatic,
Dynamic[Typeset`query$$],
Dynamic[Typeset`boxes$$],
Dynamic[Typeset`allassumptions$$],
Dynamic[Typeset`assumptions$$],
Dynamic[Typeset`open$$],
Dynamic[Typeset`querystate$$]], StandardForm],
ImageSizeCache->{202.2265625, {8.11328125, 18.11328125}},
TrackedSymbols:>{
Typeset`query$$, Typeset`boxes$$,
Typeset`allassumptions$$, Typeset`assumptions$$,
Typeset`open$$, Typeset`querystate$$}],
DynamicModuleValues:>{},
UndoTrackedVariables:>{Typeset`open$$}],
BaseStyle->{"Deploy"},
DeleteWithContents->True,
Editable->False,
SelectWithContents->True]\)]}, GeoRange -> "World",
GeoProjection -> {"Orthographic", "Centering" -> {0, 50pc},
GeoZoomLevel -> 1}, Background -> None,
GeoBackground -> None]
]
, {t, 0, 1, 0.051}];
ListAnimate[Join[p0, p1, p2, p3, p4, p5, p6, p7, p8, Reverse[p1]] ]
Licensing
I, the copyright holder of this work, hereby publish it under the following license:
| This file is made available under the Creative Commons CC0 1.0 Universal Public Domain Dedication. | |
| The person who associated a work with this deed has dedicated the work to the public domain by waiving all of their rights to the work worldwide under copyright law, including all related and neighboring rights, to the extent allowed by law. You can copy, modify, distribute and perform the work, even for commercial purposes, all without asking permission.
|