4
\documentclass[border=10pt]{standalone}
\usepackage{pstricks-add}
\begin{document}
\psset{unit=1.5cm,linejoin=1}
\begin{pspicture}(-2.1,-2.1)(2.1,2.1)
\SpecialCoor
\degrees[100]
%%%%
\rput(.05;8.5){\pswedge[fillstyle=solid,fillcolor=gray,hatchcolor=gray]{2}{0}{17}
\rput(1.2;8){\psframebox*{\small 17 \%}}}
%%%%
\rput(.05;! 17 12.5 add){\pswedge[fillstyle=hlines,fillcolor=gray,hatchcolor=gray]{2}{17}{42}
\rput(1.2;29){\psframebox*{\Large 25 \%}}}
%%%%%
\rput(.05;! 42 8 add){\pswedge[fillstyle=solid,fillcolor=gray,hatchcolor=gray]{2}{42}{58}
\rput(1.2;50){\psframebox*{\Large 16 \%}}}
%%%%
\rput(.05;! 58 12.5 add){\pswedge[fillstyle=hlines,fillcolor=gray,hatchcolor=gray]{2}{58}{83}
\rput(1.2;71){\psframebox*{\Large 25 \%}}}
%%%%
\rput(.05;! 83 8.5 add){\pswedge[fillstyle=solid,fillcolor=gray,hatchcolor=gray]{2}{83}{100}
\rput(1.2;92){\psframebox*{\Large 17 \%}}}
\psdot(0,0)
\end{pspicture}
\end{document}

enter image description here enter image description here enter image description here

As you can see, it is skewed. What can I do?

8
  • I don't really see the problem. Could you explain a bit more?
    – Bernard
    Commented Aug 31, 2019 at 17:55
  • @Bernard It mean they should be located on a circle.
    – user179355
    Commented Aug 31, 2019 at 18:05
  • What should be on a circle, which is not?
    – Bernard
    Commented Aug 31, 2019 at 18:07
  • You can see around (0,0). It seems slightly wrong.
    – user179355
    Commented Aug 31, 2019 at 18:12
  • @Bernard, I'm not sure, but visually looks like different line width or maybe not exploded by same amount, so the curved curves are not over a circle.
    – Sigur
    Commented Aug 31, 2019 at 18:19

2 Answers 2

4

The centre of the wedges are all different, so the corresponding arcs, geometrically cannot be on the same circle. The closer these centres are from the origin, the closer the arcs are from an ideal circle,. So I decreased the distance of the centres from the origin, and cheated a bit with the polar angles of some of them. Please see if it's OK for you:

\documentclass[border=10pt]{standalone}
\usepackage{pstricks-add}

\begin{document}

\psset{unit=1.5cm,linejoin=1}
\begin{pspicture}(-2.1,-2.1)(2.1,2.1)
\SpecialCoor
\degrees[100]
%%%%
\rput(.03;8.5){\pswedge[fillstyle=solid,fillcolor=gray,hatchcolor=gray]{2}{0}{17}
\rput(1.2;8){\psframebox*{\small 17 \%}}}
%%%%
\rput(.03;29){\pswedge[fillstyle=hlines,fillcolor=gray,hatchcolor=gray]{2}{17}{42}
\rput(1.2;29){\psframebox*{\Large 25 \%}}}
%%%%%
\rput(.03;50){\pswedge[fillstyle=solid,fillcolor=lightgray,hatchcolor=gray]{2}{42}{58}
\rput(1.2;50){\psframebox*{\Large 16 \%}}}
%%%%
\rput(.03;70.5){\pswedge[fillstyle=hlines,fillcolor=gray,hatchcolor=gray]{2}{58}{83}
\rput(1.2;71){\psframebox*{\Large 25 \%}}}
%%%%
\rput(.03;90){\pswedge[fillstyle=solid,fillcolor=gray,hatchcolor=gray]{2}{83}{100}
\rput(1.2;92){\psframebox*{\Large 17 \%}}}
\psdot(0,0)
\end{pspicture}

\end{document}

enter image description here

1
  • \rput(.046;8.5)...\rput(.04;! 42 8 add)...\rput(.043;! 83 8.5 add). Thanks for your explanation ...
    – user179355
    Commented Sep 1, 2019 at 1:18
3

It cannot be exactly on an outer circle!

\documentclass[border=10pt]{standalone}
\usepackage{pstricks-add}
\begin{document}
    \psset{unit=1.5cm,linejoin=1}
\begin{pspicture}(-2.1,-2.1)(2.1,2.1)
\degrees[100]%
%%%%
\pswedge[fillstyle=solid,fillcolor=gray,hatchcolor=gray](0.05;8.5){2}{0}{17}
    \rput*(1.2;8){\small 17 \%}%
%%%%
\pswedge[fillstyle=hlines,fillcolor=gray,hatchcolor=gray](0.05;29.5){2}{17}{42}
    \rput*(1.2;29){\Large 25 \%}%
%%%%%
\pswedge[fillstyle=solid,fillcolor=gray,hatchcolor=gray](0.05;50){2}{42}{58}
    \rput*(1.2;50){\Large 16 \%}
%%%%
\pswedge[fillstyle=hlines,fillcolor=gray,hatchcolor=gray](0.05;70.5){2}{58}{83}
    \rput*(1.2;71){\Large 25 \%}
%%%%
\pswedge[fillstyle=solid,fillcolor=gray,hatchcolor=gray](0.05;-8.5){2}{83}{100}
    \rput*(1.2;92){\Large 17 \%}
\psdot(0,0)
\end{pspicture}
\end{document}

enter image description here

You must log in to answer this question.