Нарисуйте многоугольную поверхность внутри пятиугольника

Нарисуйте многоугольную поверхность внутри пятиугольника

У меня есть 5 свойств, и я подумал, что было бы неплохо визуализировать их вдоль оси пятиугольника. Свойства могут принимать целочисленное значение от 0 до 5. Вместе они охватывают поверхность внутри пятиугольника.

Вот как я хотел бы, чтобы выглядело изображение [мне потребовалась целая вечность, чтобы сделать маркеры в Inkscape :-)]:

введите описание изображения здесь

Вот что у меня есть на данный момент:

\documentclass{standalone}
\usepackage{tikz}
\usetikzlibrary{shapes.geometric}

\begin{document}

\begin{tikzpicture}
\newdimen\R
\R=4cm
\node[draw=black, minimum size=\R,regular polygon,regular polygon sides=5] (a) {};
\draw (a.center) -- (a.north)    node[above] {Property1};
\draw (a.center) -- (a.corner 5) node[right] {Property2};
\draw (a.center) -- (a.corner 4) node[right] {Property3};
\draw (a.center) -- (a.corner 3) node[left]  {Property4};
\draw (a.center) -- (a.corner 2) node[left]  {Property5};

\draw [thin,black!20] circle (\R) ;
\fill[red] circle (2pt);

% Trial/error for this example
%                              P1        P2           P3              P4             P5
\draw[fill=cyan, opacity=0.8] (0,1.5) -- (0.9,0.3) -- (0.55, -0.8) -- (-0.6,-0.8) -- (-1.4,0.45) -- cycle;

\end{tikzpicture}

\end{document}

В результате получается следующее:

введите описание изображения здесь

Я теряюсь, рисуя маркеры на вершинах и размещая их на одинаковом расстоянии, и также теряюсь, когда дело доходит до заполнения многоугольника, заданного 5 целыми значениями.

Поскольку мне предстоит нарисовать довольно много подобных вещей, было бы здорово превратить вышеизложенное в макрос :-)

решение1

Вот ручная реализация с использованиемpstricks. Таким образом, компилируйте с помощью LaTeX или XeLaTeX:

введите описание изображения здесь

\documentclass{article}
\usepackage{pstricks}% http://tug.org/PSTricks/main.cgi/
\usepackage{multido,xcolor}% http://ctan.org/pkg/{multido,xcolor}

\newcommand{\proppoly}[6][]{
  \pspolygon[fillstyle=solid,fillcolor=cyan,opacity=0.8,#1]%
    (#2;90)(#3;162)(#4;234)(#5;306)(#6;18)% Property polygon
}

\begin{document}

\begin{pspicture}(-5,-5)(5,5)
  \SpecialCoor% Allow for polar coordinate specifications
  \psset{runit=3cm,linewidth=.5pt}
  \pscircle[linecolor=black!20](0,0){1.2}% Outer circle

  \psset{linecolor=black!50}
  \multido{\iA=1+1,\iB=90+72}{5}{
    \psline(0,0)(1;\iB)% Radial line outward
    \multido{\rC=0.2+0.2}{4}{%
      \rput{\number\numexpr\iB+90\relax}(\rC;\iB){\psline(-2pt,0)(2pt,0)}}% Ticks are 4pt in length
    \rput{0}(1.1;\iB){\iA}% Property #s
  }

  \pspolygon(1;90)(1;162)(1;234)(1;306)(1;18)% Outer pentagon

  \proppoly{0.8}{0.87654}{0.4765}{0.55}{0.314}
\end{pspicture}

\end{document}

\proppoly[<options>]{<p1>}{<p2>}{<p3>}{<p4>}{<p5>}строит многоугольник , содержащий значения свойств <p1>, <p2>, и с параметрами .<p3><p4><p5><options>

Вы можете добавить несколько \proppolys друг над другом:

введите описание изображения здесь

...
\proppoly{0.8}{0.87654}{0.4765}{0.55}{0.314}
\proppoly[fillcolor=green!30!yellow]{0.4}{0.5}{0.7}{0.9}{1}
\proppoly[fillcolor=red!70,opacity]{0.2}{0.3}{0.2}{0.3}{0.2}
...

Связанный контент