Take the 2-minute tour ×
TeX - LaTeX Stack Exchange is a question and answer site for users of TeX, LaTeX, ConTeXt, and related typesetting systems. It's 100% free, no registration required.

The Challenge

Today I'd like to pose a particular TikZ challenge. I stumbled upon the following picture:

Solar system

It condenses a great deal of information: each line represents one mission to the respective celestial body!

The question

Is it possible to reproduce this figure using TikZ? Just the planets with the rings should be enough, and just a proof of concept.

The rationale

If I look at all those lines, I wonder how painstaking a process this must have been to make. To me it screams: automation. And that is what TikZ is great at.

share|improve this question

closed as too broad by David Carlisle, Christian Hupfer, Martin Schröder, Heiko Oberdiek, Masroor May 21 at 1:31

There are either too many possible answers, or good answers would be too long for this format. Please add details to narrow the answer set or to isolate an issue that can be answered in a few paragraphs.If this question can be reworded to fit the rules in the help center, please edit the question.

2  
Welcome to TeX.SX. Questions about how to draw specific graphics that just post an image of the desired result are really not reasonable questions to ask on the site. Please post a minimal compilable document showing that you've tried to produce the image and then people will be happy to help you with any specific problems you may have. See minimal working example (MWE) for what needs to go into such a document. –  Martin Schröder May 20 at 21:19
1  
2  
Sometimes I don't understand this community... people ask questions in the likes of "Please draw me this" every day, and they get randomly answered or closed. Then there are questions of the challenge type, such as "Make something for my calendar", "Draw an egg", or even "Draw me a Christmas Tree with TikZ". Here I am not even asking you to just do the work for me, but for an algorithm that can draw these patterns. I would enter all data myself. Therefore, I am disappointed that you put this on hold, I think the reaction is inappropriate. Also, thanks for "Welcoming" me to SX. I'm not new... –  Ingo May 21 at 6:48
    
I am wondering the same thing - sometimes a question becomes extremely popular and other times it is closed. Plz ask about this on meta. –  Hans-Peter E. Kristiansen May 21 at 16:03

1 Answer 1

As a proof of concept...

\documentclass{article}
\usepackage{tikz}
\begin{document}
\usetikzlibrary{calc}

\def\Earth#1#2{ % 1: pos, 2: size
\draw (#1) node[left color=blue!20!cyan, right color=blue!80!black, circle, minimum size=#2cm, inner sep=0pt] (Earth) {};
}

\def\Moon#1#2{ %1: pos, 2: size
\draw (#1) node[left color=black!10, right color=black!50, circle, minimum size=#2cm, inner sep=0pt] (Moon) {};
}

\begin{tikzpicture}
\fill[black] (0,0) rectangle (8,6);
\Earth{1,1}{0.8};
\Moon{5,4}{0.4};

\foreach \i in {1,...,35} {
  \pgfmathsetmacro{\tint}{\i*100/35};
  \draw[thick, red!\tint!yellow] (Moon) circle(0.2+\i/20);
}
\foreach \i in {1,...,35} {
  \pgfmathsetmacro{\a}{-\i/2};
  \draw[ultra thick, black] (Earth.\a) .. controls +(2,0-\i/20) and +(-3+\i/20,0) .. ($(Moon)+(-90:0.2+\i/20)$);
}
\foreach \i in {1,...,35} {
  \pgfmathsetmacro{\tint}{\i*100/35};
  \pgfmathsetmacro{\a}{-\i/2};
  \draw[thick, red!\tint!yellow] (Earth.\a) .. controls +(2,0-\i/20) and +(-3+\i/20,0) .. ($(Moon)+(-90:0.2+\i/20)$);    
}
\end{tikzpicture}
\end{document}

Example

Possible improvements:

  1. Use \includegraphics{} for realistic images of the planets
  2. Define a set of named colors, like journey 1 color, journey 2 color, etc.. so that each path can be drawn at any arbitrary color, instead the yellow-to-red-gradient I used.
  3. Spend the next month completing the figure, and manually adjusting the magic numbers in the formula that computes the position of the bezier control points so that it looks nice.
share|improve this answer

Not the answer you're looking for? Browse other questions tagged or ask your own question.