我用创建了这个图形,microsoft powerpoint
但我想用乳胶制作一个类似的图形,因为我正在用乳胶编写我的文档。
我已经问过我该怎么做类似迷宫结构但在回答中,很难移除外围的某些部分以保留红色区域而不移除整个圆圈。如果移除 2、3、4、5、7 步之间的额外浅蓝色空间,只保留相应的单元格和中间区域,那么结构会更好。如果有人建议我如何修改上一个答案以获得此图像或使用上述更改,我将不胜感激。
谢谢
答案1
我让上一个答案的作者修改了他的图,因为我没有按照相同的方式构建这个图。由于我不太明白你想要的一切,所以这是第一种方法。
- 我使用节点,3 个节点组成一个圆形,3 个节点组成一个五边形。后者用于将文本放置在这些五边形的顶部。
- 圆的半径已经设置好了,通过修改这些参数,一切都会自动计算。
- 由于没有认出你使用的字体,所以我没有写文本。如果你有任何问题,我会倾听。
翻译www.DeepL.com/Translator(免费版)
更新
\documentclass[tikz,border=5mm]{standalone}
%\usepackage{tikz}
\usetikzlibrary{shapes.geometric,calc}
\begin{document}
\def\ultrad{60mm}
\def\bigrad{45mm}
\def\smallrad{30mm}
\def\pentasmall{20mm}
\begin{tikzpicture}
\node[name=cercle3,shape=circle,minimum width=\ultrad] {};%invisible circle
\node[name=cercle2,shape=circle,minimum width=\bigrad] {};
\node[name=cercle1,shape=circle,draw=cyan!30!violet,fill=cyan!60!violet!40,minimum width=\smallrad] {};
% 3 pentagon used to place text at their corner
\node[name=penta1, shape=regular polygon,rotate=108,draw=cyan!50!violet,
fill = blue!80!violet!20, inner sep=.5cm,minimum width=\pentasmall]
{};
\pgfmathtruncatemacro\pentamed{(\bigrad+\smallrad)/2}
\node[name=penta2, shape=regular polygon,inner sep=0pt,minimum width=\pentamed,rotate=108]{};
\pgfmathtruncatemacro\pentabig{(\bigrad+\ultrad)/2}
\node[name=penta3, shape=regular polygon,inner sep=0pt,minimum width=\pentabig,rotate=108]{};
\node[align=center] at (penta1){Start\\ 1};
\foreach \i [evaluate=\i as \j using \i+24]in {-30,42,...,320}{
\draw (cercle1.\i)--(cercle2.\i)arc[start angle=\i,end angle=\j,radius=\bigrad/2] (cercle1.\j)--(cercle2.\j);}
%\foreach \i/\j in {-90/2,-18/{R\\3},54/5,126/7,198/4}
% \node[align=center] at ($(cercle1.\i)!.5!(cercle2.\i)$){\j};
\node[align=center,rotate=108] at (penta2.corner 1){J\\4};
\node[align=center] at (penta2.corner 2){2};
\node[align=center] at (penta2.corner 3){3};
\node at (penta2.corner 4){5};
\node at (penta2.corner 5){7};
% red
\draw[fill=red](cercle2.42)--(cercle3.42)arc[start angle=42,end angle=66,radius=\ultrad/2]--(cercle2.66)arc[start angle=66,end angle=42,radius=\bigrad/2];
\draw[fill=red](cercle2.114)--(cercle3.114)arc[start angle=114,delta angle=24,radius=\ultrad/2]--(cercle2.138)arc[start angle=138,delta angle=-24,radius=\bigrad/2];
\end{tikzpicture}
\end{document}
旧答案
\documentclass[tikz,border=5mm]{standalone}
%\usepackage{tikz}
\usetikzlibrary{shapes.geometric,calc}
\begin{document}
\def\ultrad{60mm}
\def\bigrad{45mm}
\def\smallrad{30mm}
\def\pentasmall{1cm}
\tikzset{
shape example/.style= {color = black!30,
draw=cyan!50!violet,
fill = blue!80!violet!20,
very thick,
inner xsep = 2.5cm,
inner ysep = 0.5cm,
rotate=108}
}
\begin{tikzpicture}
\node[name=cercle3,shape=circle,minimum width=\ultrad] {};%invisible circle
\node[name=cercle2,shape=circle,draw,fill=cyan!20,minimum width=\bigrad] {};
\node[name=cercle1,shape=circle,draw=cyan!30!violet,fill=cyan!60!violet!40,minimum width=\smallrad] {};
% 3 pentagon used to place text at their corner
\node[name=penta1, shape=regular polygon, shape example, inner sep=.5cm,minimum width=\pentasmall]
{};
\pgfmathtruncatemacro\pentamed{(\bigrad+\smallrad)/2}
\node[name=penta2, shape=regular polygon,inner sep=0pt,minimum width=\pentamed,rotate=108]{};
\pgfmathtruncatemacro\pentabig{(\bigrad+\ultrad)/2}
\node[name=penta3, shape=regular polygon,inner sep=0pt,minimum width=\pentabig,rotate=108]{};
\node[align=center] at (penta1){Start\\ 1};
\foreach \i [evaluate=\i as \j using \i+24]in {-30,42,...,320}{
\draw (cercle1.\i)--(cercle2.\i);
\draw (cercle1.\j)--(cercle2.\j);}
%\foreach \i/\j in {-90/2,-18/{R\\3},54/5,126/7,198/4}
% \node[align=center] at ($(cercle1.\i)!.5!(cercle2.\i)$){\j};
\node[align=center,rotate=108] at (penta2.corner 1){J\\4};
\node[align=center] at (penta2.corner 2){2};
\node[align=center] at (penta2.corner 3){3};
\node at (penta2.corner 4){5};
\node at (penta2.corner 5){7};
% red
\draw[fill=red](cercle2.42)--(cercle3.42)arc[start angle=42,end angle=66,radius=\ultrad/2]--(cercle2.66)arc[start angle=66,end angle=42,radius=\bigrad/2];
\draw[fill=red](cercle2.114)--(cercle3.114)arc[start angle=114,delta angle=24,radius=\ultrad/2]--(cercle2.138)arc[start angle=138,delta angle=-24,radius=\bigrad/2];
\end{tikzpicture}
\end{document}
答案2
另一种选择。在这种情况下,外段用圆弧绘制。如果您不想要边框,可以只用正确的圆弧绘制它们line width
。
作为第一个解决方案,所有角度都是手动定义的,但自动定义它们并不太困难。
\documentclass[margin=3mm, tikz]{standalone}
\usepackage{tikz}
\usetikzlibrary{shapes.geometric, intersections, decorations.text}
\begin{document}
\begin{tikzpicture}
\node [circle, minimum size=6cm, draw, draw= blue!20!black,fill=blue!20] (a) {} ;
\node [draw,minimum size=4cm,inner sep=0pt,regular polygon,regular polygon sides=5,shape border rotate=180, align=center, fill=blue!80] (b) {Start\\ 1};
\foreach \i [evaluate=\i as \j using 30+\i] in {39,111,183,255,327}{
\draw[fill=cyan] (\i:3) arc (\i:\j:3)--++(\j:1) arc(\j:\i:4)--cycle;
\draw[fill=red] (\i:4) arc (\i:\j:4)--++(\j:1) arc(\j:\i:5)--cycle;
}
\foreach \i [count=\ni] in {54,126,...,342}{
\node[rotate=\i-90] at (\i:3.5) {\ni};
\node[rotate=\i-90] at (\i:4.5) {\ni};
}
\end{tikzpicture}
\end{document}
更新:
\documentclass[margin=3mm, tikz]{standalone}
\usepackage{tikz}
\usetikzlibrary{shapes.geometric, intersections, decorations.text}
\begin{document}
\begin{tikzpicture}
\node [circle, minimum size=6cm, draw, draw= blue!20!black,fill=blue!20] (a) {} ;
\node [draw,minimum size=4cm,inner sep=0pt,regular polygon,regular polygon sides=5,shape border rotate=180, align=center, fill=blue!80] (b) {Start\\ 1};
\foreach \i [evaluate=\i as \j using 30+\i] in {39,111,183,255,327}
\draw[fill=cyan] (\i:3) arc (\i:\j:3)--++(\j:1) arc(\j:\i:4)--cycle;
\foreach \i [count=\ni] in {54,126,...,342}
\node[rotate=\i-90, ] at (\i:3.5) {\ni};
\foreach \i [evaluate=\i as \j using 30+\i] in {39,111}
\draw[fill=red] (\i:4) arc (\i:\j:4)--++(\j:1) arc(\j:\i:5)--cycle;
\foreach \i [count=\ni] in {54,126}
\node[rotate=\i-90, ] at (\i:4.5) {\ni};
\end{tikzpicture}
\end{document}