2

For my thesis in business ethics, I want to show that the classical stakeholder model is not appropriate. Usually the stakeholders are arranged around the company like planets around a star. But the truth is, that the company is hold by the stakeholders. If they are failing, the company falls. To visualise this, I want to draw the stakeholders holding a life net on which the company is located. My current code is attaced but is is far away from a visualisation (most similar is the third picture) that shows the described idea.

Someone can do a visualisation like one of the three attached examples (or even better)? Can you help me with a TIKZ-code?

Thank you very much.

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{shapes,arrows,spy,positioning,snakes,shadows}

\tikzset{
  ashadow/.style={opacity=.25, shadow xshift=0.07, shadow yshift=-0.07},
}

\begin{document}
\begin{tikzpicture}
    \node[draw, regular polygon, regular polygon sides=6, minimum size = 6.0cm] at (0,0){};
    \node[draw, star, star points=6, star point ratio=.65, minimum size = 4.2cm] at (0,0){};
    \node[draw, star, star points=6, star point ratio=.6, minimum size = 3.5cm] at (0,0){};
    \node[draw, star, star points=6, star point ratio=.55, minimum size = 2.8cm] at (0,0){};
    \node[draw, star, star points=6, star point ratio=.5, minimum size = 2.1cm] at (0,0){};
    \node[draw, star, star points=6, star point ratio=.45, minimum size = 1.4cm] at (0,0){};    
\shade[ball color=red,drop shadow={ashadow, color=red!60!black}] (90:0.6) circle (1cm) node{Company};
\shade[ball color=lime,drop shadow={ashadow, color=lime!60!black}] (180:4.25) circle (1cm) node{Competitors};
\shade[ball color=blue,drop shadow={ashadow, color=blue!60!black}] (60:4.25) circle (1cm) node{Government};
\shade[ball color=cyan,drop shadow={ashadow, color=cyan!60!black}] (120:4.25) circle (1cm) node{Employees};
\shade[ball color=olive,drop shadow={ashadow, color=olive!60!black}] (2400:4.25) circle (1cm) node{Costumers};
\shade[ball color=green,drop shadow={ashadow, color=green!60!black}] (300:4.25) circle (1cm) node{Suppliers};
\shade[ball color=violet,drop shadow={ashadow, color=violet!60!black}] (0:4.25) circle (1cm) node{Financiers};

\end{tikzpicture}
\end{document}

My first draft with a paint-program

My gf draft, but I prefer 6 stakeholders

My second draft with a painting tool

1 Answer 1

5

With tikz-3dplot you can do the following.

\documentclass[border=3mm,tikz]{standalone}
\usepackage{tikz-3dplot}
\tikzset{man/.pic={% https://tex.stackexchange.com/a/249596
        \fill [rounded corners=1.5] (0,0.4) -- (0,0.8) -- (0.4,0.8) -- (0.4,0.4) --
            (0.325,0.4) -- (0.325,0.7) -- (0.3,0.7) -- (0.3,0) -- (0.225,0) --
            (0.225,0.4) -- (0.175,0.4) -- (0.175,0) -- (0.1,0) -- (0.1,0.7) --
            (0.075,0.7) -- (0.075,0.4) -- cycle;
        \fill (0.2,0.9) circle (0.1);
        \coordinate (-head) at (0.2,1);
        \coordinate (-foot) at (0.2,0);
    }
}
\begin{document}
\tdplotsetmaincoords{110}{15}
\begin{tikzpicture}[tdplot_main_coords]
 \foreach \Zangle in {120,150,...,270}
 {\tdplotsetrotatedcoords{\Zangle}{0}{0}
  \begin{scope}[tdplot_rotated_coords,canvas is xz plane at y=3,transform shape]
   \pic{man};
  \end{scope}}
 % 
 \begin{scope}[canvas is xy plane at z=0.5]
  \foreach \Zangle in {00,30,...,150} 
  {\draw[green!60!black,very thick] (\Zangle-6:3) -- (\Zangle+180-6:3); }
  \node[circle,fill=blue!60,transform shape,font=\sffamily,yscale=-1]{whatever};
 \end{scope}
 %
 \foreach \Zangle in {-60,-30,...,90}
 {\tdplotsetrotatedcoords{\Zangle}{0}{0}
  \begin{scope}[tdplot_rotated_coords,canvas is xz plane at y=3,transform shape]
   \pic{man};
  \end{scope}}
\end{tikzpicture}
\end{document}

enter image description here

The pic for the person is taken from here. If you do not like it, search for another one or build your own.

It is also possible to give the figures a depth.

\documentclass[border=3mm,tikz]{standalone}
\usepackage{tikz-3dplot}
\tikzset{pics/single man/.style={code={
\draw[gray,thin,fill=black,rounded corners=0.5] 
        (-0.2,#1,0.4)[rounded corners=2.5] -- (-0.2,#1,0.8)[sharp corners]   -- 
         (-0.05,#1,0.8) 
          --
         plot[variable=\t,domain=240:-60]
        ({0.1*cos(\t)},#1,{0.1*sin(\t)+0.9}) 
         -- (0.05,#1,0.8) [rounded corners=2.5]
         -- (0.2,#1,0.8)[rounded corners=0.5] -- (0.2,#1,0.4) --
            (0.125,#1,0.4) -- (0.125,#1,0.7) -- (0.1,#1,0.7) -- (0.1,#1,0) -- (0.025,#1,0) --
            (0.025,#1,0.4) -- (-0.025,#1,0.4) -- (-0.025,#1,0) -- (-0.1,#1,0) -- (-0.1,#1,0.7) --
             (-0.125,#1,0.7) -- (-0.125,#1,0.4) --
             cycle;
}},
pics/bman/.style={% https://tex.stackexchange.com/a/249596
        code={\pgfmathsetmacro{\Ymax}{#1+0.1}
        \pgfmathsetmacro{\Ynext}{\Ymax-0.01}
        \foreach \Y in {\Ymax,\Ynext,...,#1}
        {
            \pic{single man=\Y};}
    }},
pics/fman/.style={% https://tex.stackexchange.com/a/249596
        code={\pgfmathsetmacro{\Ymax}{#1+0.1}
        \pgfmathsetmacro{\Ynext}{#1+0.01}
        \typeout{\Ymax,\Ynext,...,#1}
        \foreach \Y in {#1,\Ynext,...,\Ymax}
        {
           \pic{single man=\Y};
            }
    }}
}
\begin{document}
\tdplotsetmaincoords{110}{15}
\begin{tikzpicture}[tdplot_main_coords]
 \foreach \Zangle in {120,150,...,270}
 {\tdplotsetrotatedcoords{\Zangle}{0}{0}
  \begin{scope}[tdplot_rotated_coords,transform shape]
   \pic{bman=3};
  \end{scope}}
 % 
 \begin{scope}[canvas is xy plane at z=0.45]
  \foreach \Zangle in {00,30,...,150} 
  {\draw[green!60!black,very thick] (\Zangle-3:3) -- (\Zangle+180-3:3)
   (\Zangle+3:3) -- (\Zangle+180+3:3); }
  \node[circle,fill=blue!60,transform shape,font=\sffamily,yscale=-1]{whatever};
 \end{scope}
 %
 \foreach \Zangle in {-60,-30,...,90}
 {\tdplotsetrotatedcoords{\Zangle}{0}{0}
  \begin{scope}[tdplot_rotated_coords,transform shape]
   \pic{fman=3};
  \end{scope}}
\end{tikzpicture}
\end{document}

enter image description here

1
  • Thank you very much for your help. The 3dplot package was new for me. You gave me exactly what I wanted.
    – Thomas
    Aug 23, 2019 at 11:56

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .