TIKZ:人类拿着救生网

TIKZ:人类拿着救生网

对于我的商业伦理论文,我想表明传统的利益相关者模型并不合适。通常,利益相关者围绕公司排列,就像行星围绕恒星一样。但事实是,公司是由利益相关者控制的。如果他们失败了,公司就会倒闭。为了形象化这一点,我想画出利益相关者拿着公司所在的救生网。我当前的代码已附上,但与展示所述想法的可视化效果相去甚远(最相似的是第三张图片)。

有人能制作出类似附件三个示例之一的可视化效果(甚至更好)吗?你能帮我提供 TIKZ 代码吗?

非常感谢。

\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}

我用绘画程序绘制的第一幅草稿

我的女朋友选秀,但我更喜欢 6 个利益相关者

使用绘画工具绘制的第二稿

答案1

tikz-3dplot可以执行以下操作。

\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}

在此处输入图片描述

该人的照片取自这里。如果您不喜欢,请寻找另一个或构建自己的。

还可以赋予图形深度。

\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}

在此处输入图片描述

相关内容