Not exactly what you want ( high level environments) but I propose a macro. I made this macro very quicly, so it's possible to make something better. We can add styles etc.
\documentclass[11pt]{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage{tikz}
\makeatletter
\@namedef{color@1}{red!40}
\@namedef{color@2}{green!40}
\@namedef{color@3}{blue!40}
\@namedef{color@4}{cyan!40}
\@namedef{color@5}{magenta!40}
\@namedef{color@6}{yellow!40}
\newcommand{\graphitemize}[2]{%
\begin{tikzpicture}[every node/.style={align=center}]
\node[minimum size=5cm,circle,fill=gray!40,font=\Large,outer sep=1cm,inner sep=.5cm](ce){#1};
\foreach \gritem [count=\xi] in {#2}
{\global\let\maxgritem\xi}
\foreach \gritem [count=\xi] in {#2}
{%
\pgfmathtruncatemacro{\angle}{360/\maxgritem*\xi}
\edef\col{\@nameuse{color@\xi}}
\node[circle,
ultra thick,
draw=white,
fill opacity=.5,
fill=\col,
minimum size=3cm] at (ce.\angle) {\gritem };}%
\end{tikzpicture}
}%
\begin{document}
\graphitemize{Discipline}{Love,Trust,Self-\\control,Journey,Obedience}
\graphitemize{Mathématiques}{Algèbre,Géométrie,Analyse}
\end{document}
Update
I added a new style, now it's possible to create some keys to chooose the style
\documentclass[11pt]{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage{tikz}
\usetikzlibrary{calc}
\makeatletter
\@namedef{color@1}{red!40}
\@namedef{color@2}{green!40}
\@namedef{color@3}{blue!40}
\@namedef{color@4}{cyan!40}
\@namedef{color@5}{magenta!40}
\@namedef{color@6}{yellow!40}
\newcommand{\graphitemize}[2]{%
\begin{tikzpicture}[every node/.style={align=center}]
\node[minimum size=4cm,circle,fill=gray!40,font=\Large,outer sep =.25cm,inner sep=.5cm](ce){#1};
\foreach \gritem [count=\xi] in {#2} {\global\let\maxgritem\xi}
\foreach \gritem [count=\xi] in {#2}
{%
\pgfmathtruncatemacro{\angle}{360/\maxgritem*\xi}
\edef\col{\@nameuse{color@\xi}}
\node[circle,
ultra thick,
draw=white,
fill opacity=.5,
fill=\col,outer sep=0.25cm,
minimum size=2cm] (satellite-\xi) at (\angle:5cm) {\gritem };
\draw[line width=0.5cm,->,\col] (ce) -- (satellite-\xi);
}%
\end{tikzpicture}
}%
\begin{document}
\graphitemize{Discipline}{Love,Trust,Self-\\control,Journey,Obedience}
\graphitemize{Mathématiques}{Algèbre,Géométrie,Analyse}
\end{document}
Have a look at Asymptote. It's very powerful for 3D graphics and can be embedded into Latex.
\documentclass{standalone}
\usepackage{asymptote}
\begin{document}
\begin{asy}[width=10cm,height=10cm]
import solids;
import labelpath3;
// Set page size
size(0,150);
// Lighting
currentlight=Viewport;
real wi = 4;
real le = 4;
material m = material(grey, yellow, black, orange);
triple[] wheels = {(-le/2,-wi/2,0),
(-le/2,wi/2,0),
(le/2,-wi/2,0),
(le/2,wi/2,0) };
// lines
draw((-le/2,wi/2,0)--(-le/2,wi,0));
draw((le/2,wi/2,0)--(le/2,wi,0));
// wheels
for(triple p : wheels) {
draw(shift(p)*rotate(90,(1,0,0))*
scale(1,1,0.2)*shift((0,0,-0.5))*unitcylinder,m);
draw(shift(p)*rotate(90,(1,0,0))*
shift((0,0,-0.1))*unitdisk,m);
draw(shift(p)*rotate(90,(1,0,0))*
shift((0,0,0.1))*unitdisk,m);
}
// axes
draw(shift(-le/2,0,0)*rotate(90,(1,0,0))*
scale(0.1,0.1,wi)*shift((0,0,-0.5))*unitcylinder,m);
draw(shift(le/2,0,0)*rotate(90,(1,0,0))*
scale(0.1,0.1,wi)*shift((0,0,-0.5))*unitcylinder,m);
// box
draw(scale(5,1,1)*shift(-0.5,-0.5,-0.5)*unitcube,m);
draw((-le/2,0.9*wi,0)--(le/2,0.9*wi,0),Arrows3);
draw(scale(0.8,1,1)*labelpath("wheelbase $w$",(le/2,wi,0)--(-le/2,wi,0)));
\end{asy}
\end{document}
Here's the result:
Best Answer
This can be relatively easily achieved using PGFPlots. I've written a small macro that is called like this:
to create this:
The optional argument can be used to pass normal PGFPlots options to the
axis
environment used internally.