tikzdraw/graphics/globe.tex

90 lines
3.6 KiB
TeX
Raw Normal View History

2021-04-10 16:00:12 +02:00
\documentclass{standalone}
%
\usepackage{tikz}
\usetikzlibrary{backgrounds}
%
\usepackage{tkz-euclide}
\usetkzobj{all}
%
\usepackage{xcolor}
\definecolor{space}{HTML}{0A2543}
\definecolor{earth}{HTML}{0089FA}
\definecolor{earthn}{HTML}{0C5898}
\definecolor{land}{HTML}{309347}
%
\usepackage{fontspec}
\setmainfont{Montserrat Medium}
\title{Earth: A globe}
\begin{document}
\tikzset{partial ellipse/.style args = {#1:#2:#3}{insert path={+ (#1:#3) arc (#1:#2:#3)}}}
\begin{tikzpicture}[background rectangle/.style={fill=space},show background rectangle,]
\draw [use as bounding box] (-6,7.5) -| (7.5,7.5) |- (7.5,-9) -| (-6,-9);
\begin{scope}[rotate around={-27:(0,0)}]
\tkzDefPoint(0,0){O}
\tkzDefPoint(0,5.5){E}
\tkzDefPoint(0,-7){E1}
\tkzDefPoint(0,7){E2}
\tkzDrawSegment[ultra thick, color=white](E1,E2)
\tkzDrawCircle[R,color=white,fill=white](E2,0.2 cm)
\node [above, xshift=5.5cm, text width=10cm, color=white, font=\fontsize{15pt}{16pt}\selectfont] at (E1) {S};
\node [above, xshift=5.5cm, text width=10cm, color=white, font=\fontsize{15pt}{16pt}\selectfont] at (E2) {N};
\tkzDrawArc[color=white, ultra thick](O,E1)(E2)
\tkzInterLC(O,E)(O,E2) \tkzGetPoints{b1}{b2}
\tkzDefPoint(-0.5,-8.5){T1}
\tkzDefPoint(0.5,-8.5){T2}
\tkzDefPointBy[rotation= center O angle 27](b1) \tkzGetPoint{t3}
\tkzDefPointBy[rotation= center O angle 27](T1) \tkzGetPoint{t1}
\tkzDefPointBy[rotation= center O angle 27](T2) \tkzGetPoint{t2}
\tkzDrawPolygon[color=white,fill=white](t3,t1,t2)
\tkzDrawCircle[fill = earth](O,E)
\tkzClipCircle(O,E)
\tkzDefPoint(0.6,0.4){A}
\tkzDefPoint(-0.6,0.4){B}
%
% lands
%
\fill [land] plot [smooth, tension=0.9] coordinates { (5,5) (4,4) (4.5,0) (4.5,-4) (4.3,-5.5) (6,0) (5,5) };
\begin{scope}[xscale=3]
\fill [land] (0,-5.5) circle (1cm);
\end{scope}
\fill [land] plot [smooth, tension=0.9] coordinates { (-2,0.5) (0,1) (3,0.5) (2.2,-1.2) (0.3,-3) (-0.1,-2) (-2.5,-0.7) (-2,0.5) };
\fill [land] plot [smooth, tension=0.9] coordinates { (0,4) (2,3.2) (2.2,1.6) (1.8,1) (1.5,1.8) (0.1,2) (-1.2,1.7) (-2.3,2) (-2.4,3.5) (0,4) };
%
% clouds
%
\draw [line width=5mm, color=white] (-5.5,4.5) -- (-1.5,4.5);
\draw [line width=5mm, color=white] (-5.5,4.1) -- (-1.2,4.1);
\fill [white] (-1.5,4.55) circle (0.2cm);
\fill [white] (-1.2,4.1) circle (0.25cm);
%
\draw [line width=5mm, color=white] (-5.5,1.1) -- (-3.5,1.1);
\draw [line width=5mm, color=white] (-5.5,0.7) -- (-3.2,0.7);
\fill [white] (-3.5,1.15) circle (0.2cm);
\fill [white] (-3.2,0.7) circle (0.25cm);
%
\draw [line width=5mm, color=white] (-5.5,-4.1) -- (-1.5,-4.1);
\draw [line width=5mm, color=white] (-5.5,-4.5) -- (-1.2,-4.5);
\draw [line width=4mm, color=white] (-2.3,-4.8) -- (-1.6,-4.8);
\fill [white] (-1.5,-4.05) circle (0.2cm);
\fill [white] (-1.2,-4.5) circle (0.25cm);
\fill [white] (-1.6,-4.8) circle (0.2cm);
\fill [white] (-2.3,-4.8) circle (0.2cm);
%
\draw [line width=5mm, color=white] (3,-2.5) -- (5.5,-2.5);
\draw [line width=5mm, color=white] (2.5,-2.9) -- (5.5,-2.9);
\draw [line width=4mm, color=white] (3.5,-3.2) -- (5,-3.2);
\fill [white] (3,-2.45) circle (0.2cm);
\fill [white] (2.5,-2.9) circle (0.25cm);
\fill [white] (3.5,-3.2) circle (0.2cm);
%
\begin{scope}[yscale=0.5]
\foreach \i in {1,2,...,6}{
\pgfmathsetmacro{\x}{(rand*0.2 + 1)*12-12}
\pgfmathsetmacro{\y}{(rand*0.5 + 1)*10-10}
\pgfmathsetmacro{\opacVal}{rand*0.5+1}
\fill[white] (\x,\y) circle (0.5cm);
}
\end{scope}
\end{scope}
\end{tikzpicture}
\end{document}