[Tex/LaTex] How to draw this diagram with minimum effort

pstricks

I want to save my time by avoiding manual calculation if possible. Could you help me to simplify the following code snippet?

\documentclass{minimal}
\usepackage{pst-node}
\psset{unit=6.2cm,linewidth=1.6pt}
\pagestyle{empty}
\begin{document}
\begin{pspicture}[showgrid=false](-0.1,-0.1)(2,2.1)
\SpecialCoor
\pstVerb{/side 1 def}
\pnode(!0 side){A}\uput[180](A){$A$}
\pnode(!0 0){B}\uput[225](B){$B$}
\pnode(!80 sin 2 exp side mul 40 sin div 70 sin div 0){C}\uput[-45](C){$C$}
\pnode(!80 sin side mul 30 sin div 20 cos mul 80 sin side mul 30 sin div 20 sin mul){D}\uput[0](D){$D$}
\pnode(!50 sin side mul 20 sin div 60 cos mul 50 sin side mul 20 sin div 60 sin mul){E}\uput[90](E){$E$}
\pnode(!80 sin side mul 70 sin div 60 cos mul 80 sin side mul 70 sin div 60 sin mul){P}\uput[110](P){$P$}
\pnode(!80 sin 2 exp side mul 60 sin div 70 sin div 20 cos mul 80 sin 2 exp side mul 60 sin div 70 sin div 20 sin mul){Q}\uput[80](Q){$Q$}
\pspolygon(A)(B)(C)(D)(E)
\psset{linecolor=red}
\psline(A)(D)
\psline(B)(E)
\psset{linecolor=blue}
\psline(P)(C)
\psline(B)(D)
\psset{linecolor=magenta,linewidth=0.8pt,arcsep=1.6pt,arrows=<->}
\psarc[origin={A}](A){30pt}{(D)}{(E)}\uput{15pt}[15](A){$\theta$}

\psarc[origin={B}](B){45pt}{(E)}{(A)}\uput{25pt}[75](B){$30^\circ$}
\psarc[origin={B}](B){45pt}{(C)}{(D)}\uput{25pt}[10](B){$20^\circ$}
\psarc[origin={B}](B){45pt}{(D)}{(E)}\uput{25pt}[40](B){$\alpha$}

\psarc[origin={D}](D){40pt}{(A)}{(B)}\uput{15pt}[187.5](D){$30^\circ$}
\psarc[origin={D}](D){40pt}{(B)}{(C)}\uput{15pt}[235](D){$50^\circ$}
\psarc[origin={D}](D){40pt}{(E)}{(A)}\uput{15pt}[140](D){$50^\circ$}


\psarc[origin={C}](C){35pt}{(D)}{(P)}\uput{15pt}[100](C){$70^\circ$}
\psarc[origin={C}](C){35pt}{(P)}{(B)}\uput{13pt}[160](C){$40^\circ$}

\psarc[origin={P}](P){45pt}{(C)}{(D)}\uput{20pt}[-25](P){$30^\circ$}
\end{pspicture}
\end{document}

enter image description here

For those who are interested in knowing the solution of this geometry problem, see A tricky geometry problem.

Best Answer

For the intersection points use \psIntersectionPoint. Here is a solution without a calculated point, but with the angles alpha and theta:

\documentclass{minimal}
\usepackage{pstricks-add}
\psset{unit=6.2cm,linewidth=1.6pt}
\pagestyle{empty}
\def\psArc(#1)#2(#3)(#4)#5[#6]#7{%
  \psarc[origin={#1}](#1){#2}{(#3)}{(#4)}\uput{#5}[#6](#1){$#7$}}
\def\Uput[#1](#2){\uput[#1](#2){$#2$}}
\begin{document}

\begin{pspicture}(-0.1,-0.1)(2,2.1)
\pnode(0,1){A}\Uput[180](A) \pnode{B}\Uput[225](B)
\rput(A){\pnode(3;40){E'}} \pnode(3;60){E''} 
\psIntersectionPoint(A)(E')(B)(E''){E}\Uput[90](E)
\rput(A){\pnode(3;-10){D'}} \rput(E){\pnode(3;-60){D''}} 
\psIntersectionPoint(A)(D')(E)(D''){D}\Uput[0](D)
\pnode(3;0){C'} \rput(D){\pnode(3;-110){C''}} 
\psIntersectionPoint(B)(C')(D)(C''){C}\Uput[-45](C)
\psIntersectionPoint(A)(D)(B)(E){P} \Uput[110](P)
\psIntersectionPoint(B)(D)(C)(P){Q} \Uput[80](Q)

\pspolygon(A)(B)(C)(D)(E)
\psset{linecolor=red}
\psline(A)(D)\psline(B)(E)
\psset{linecolor=blue}
\psline(P)(C)\psline(B)(D)
\psset{linecolor=magenta,linewidth=0.8pt,arcsep=1.6pt,arrows=<->}
\psArc(A){30pt}(D)(E){15pt}[15]{\theta}
\psArc(B){45pt}(E)(A){25pt}[75]{30^\circ}
\psArc(B){45pt}(C)(D){25pt}[10]{20^\circ}
\psArc(B){45pt}(D)(E){25pt}[40]{\alpha}
\psArc(D){40pt}(A)(B){15pt}[187.5]{30^\circ}
\psArc(D){40pt}(B)(C){15pt}[235]{50^\circ}
\psArc(D){40pt}(E)(A){15pt}[140]{50^\circ}
\psArc(C){35pt}(D)(P){15pt}[100]{70^\circ}
\psArc(C){35pt}(P)(B){13pt}[160]{40^\circ}
\psArc(P){45pt}(C)(D){20pt}[-25]{30^\circ}
\psline[linestyle=dashed](E)(Q)
\end{pspicture}

\end{document}

enter image description here

Related Question