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.
|