我发现火柴人形象往往是展示组织的绝佳工具。它们易于理解,不会挤占视觉空间,而且可以清晰地代表个人。
理想情况下,我希望有某种东西可以创建一个火柴人形状的节点,然后我可以用它来创建网络图,以代表人们。一个包是最好的选择,但即使是简单的代码也能做到同样的事情,也很棒。
答案1
只是为了好玩,有一个包,{tikzsymbols}
你可以在其中看到示例visual tikz 中的第 21.3 节文档中,您有宏\Strichmaxerl[scale]
:
结果:
梅威瑟:
\documentclass[tikz,border=20pt]{standalone}
\usepackage{tikz}
\usepackage{tikzsymbols}
\begin{document}
\begin{tikzpicture}
\Strichmaxerl[5]
\end{tikzpicture}
\end{document}
此宏还有另一种变体\Strichmaxerl[5][right_arm][left_arm][right_leg][lef_leg]
,可以改变手臂和腿的位置。
结果:
梅威瑟:
% arara: pdflatex: {synctex: yes, action: nonstopmode}
% arara: animate: {density: 200, delay: 10, other: -background white -alpha remove}
% arara: showanimate
\documentclass[tikz,border=20pt]{standalone}
\usepackage{tikzsymbols}
\usetikzlibrary{backgrounds,decorations.pathreplacing}
\begin{document}
\pagecolor{black}
\foreach \A in {1,2,...,9,8,7,...,1}{
\begin{tikzpicture}
\Strichmaxerl[5][90+\A*18][-\A*18][-45+\A*5][45-\A*5]
\begin{scope}[on background layer]
\fill[white](0,0.75) circle (1.5);
\draw[
decorate,
white,
decoration={
waves,
segment length=pi*6,
radius=1cm
}
] (0,0.75) circle (1.5);
\draw[white] node at(0,-2){Stick Bond};
\end{scope}
\end{tikzpicture}}
\end{document}
PSD:为了制作动画,我使用了 imagemagic 转换器
答案2
\documentclass{article}
\begin{document}
\begin{picture}(10,25)(0,-3)
\put(5,18){\circle{5}}
\thicklines
\put(5,7){\line(0,1){8}}
\put(5,7){\line(1,-2){5}}
\put(5,7){\line(-1,-2){5}}
\put(1,12){\line(1,0){8}}
\end{picture}
%
\begin{picture}(10,25)(0,-3)
\put(5,17){\circle{5}}
\thicklines
\put(5,7){\line(0,1){7}}
\put(5,7){\line(1,-2){5}}
\put(5,7){\line(-1,-2){5}}
\put(1,11){\line(1,0){8}}
\put(1.75,1.5){\line(1,0){6}}
\put(2.0,2){\line(1,0){5.5}}
\put(2.25,2.5){\line(1,0){5}}
\put(2.5,3){\line(1,0){4.5}}
\put(2.75,3.5){\line(1,0){4}}
\put(3,4){\line(1,0){3.5}}
\put(3.25,4.5){\line(1,0){3}}
\put(3.5,5){\line(1,0){2.5}}
\put(3.75,5.5){\line(1,0){2}}
\end{picture}
%
\begin{picture}(10,25)(0,-3)
\put(5,6){\circle{2}}
\put(4.5,1){\line(0,-1){4}}
\put(5.5,1){\line(0,-1){4}}
\put(3,3){\line(1,0){4}}
\thicklines
\put(5,1){\line(0,1){4}}
\end{picture}
\end{document}
栩栩如生,几乎不能被称为火柴人。
答案3
这是我在演示中使用的。它是参数化的,因此我可以通过设置\x
和\y
参数轻松放置它。拥有人口也很容易。
\documentclass[border=3]{standalone}
\usepackage{tikz}
\usetikzlibrary{math}
\begin{document}
% ======================================= V
\newcommand{\stickman}[4]{% \stickman ==== V
\def\x{#1} % center x
\def\y{#2} % center y
\def\r{#3} % radius
\def\name{#4} % name
\def\xl{\x-\r} % x left
\def\xr{\x + \r} % x right
\def\ya{\y-\r} % body upper
\def\yb{\ya-\r} % arms
\def\yc{\yb-\r} % legs
\def\ybd{\yb-0.5*\r} % arms lower
\def\ycd{\yc-0.5*\r} % legs lower
\draw[
thick, orange
]
(\x, \y) circle (\r) % head
(\x, \y) node {\name}
(\x, \ya) -- (\x,\yc) % body
(\xl, \ybd) -- (\x, \yb) -- (\xr, \ybd) %arms
(\xl, \ycd) -- (\x, \yc) -- (\xr, \ycd) %arms
; %
} % \stickman ==== A
% ======================================= A
% ======================================= V
\begin{tikzpicture}
% % no name
% \stickman{3}{3}{1} {}
% generation
\stickman{1}{3}{0.4} {a}
\stickman{1.8}{4.3}{0.4} {b}
\stickman{3}{4.8}{0.3} {$c_{i}$}
\stickman{3.1}{2}{0.4} {}
\stickman{4}{3}{0.5} {}
% i, j
\stickman{6}{3}{0.2} {i}
\stickman{9}{3}{1} {j}
%
% \stickman{6}{3}{1}{}
% \stickman{9}{4}{1}{}
% \stickman{4.5}{4}{1}{}
\end{tikzpicture}
% ======================================= A
\end{document}```