让我们考虑一个更简单的三角形。pst-eucl
根据
点名称将放置在角平分线上。
下面的例子与上面的说法相矛盾。
\documentclass[pstricks,border=15pt]{standalone}
\usepackage{pst-eucl}
\pstVerb
{
/rv {rand 36000 mod 100 div} def % random number from 0.00 to 359.99
}
\begin{document}
\psLoop{30}{%
\begin{pspicture}[showgrid=false](-2,-2)(2,2)
\pscircle[linestyle=dashed,linecolor=lightgray]{2}
\pstTriangle[linejoin=2](!2 rv PtoC){A}(!2 rv PtoC){B}(!2 rv PtoC){C}%
\end{pspicture}}
\end{document}
现在我们考虑任意多边形。如何自动将多边形的点名称放置在角平分线上?
答案1
需要pst-eucl.tex|pro
来自http://texnik.dante.de/
\documentclass[pstricks,border=15pt]{standalone}
\usepackage{pst-eucl}
\begin{document}
\psforeach{\Angle}{0,10,..,360}{%
\begin{pspicture}[showgrid=false](-2,-2)(2,2)
\pscircle[linestyle=dashed,linecolor=lightgray]{2}
\pstTriangle[fillstyle=solid,fillcolor=red!30!white,
opacity=0.4,linejoin=2](2;145){A}(2;195){B}(2;\Angle){C}%
\end{pspicture}}
\end{document}
答案2
这不是一个可靠的解决方案,因为标签有时位于多边形内。
\documentclass[pstricks,border=15pt]{standalone}
\usepackage{pst-eucl}
\pstVerb
{
/rv {rand 36000 mod 100 div} def % random number from 0.00 to 359.99
}
\begin{document}
\psLoop{30}{%
\begin{pspicture}[showgrid=false](-2,-2)(2,2)
\pscircle[linestyle=dashed,linecolor=lightgray]{2}
\pstGeonode[CurveType=polygon,PointName=none,linejoin=2]
(!0 0){A}
(!2 rv PtoC){B}
(!2 rv PtoC){C}
(!2 rv PtoC){D}
\psset{MarkAngleRadius=0,LabelSep=0.25}
\pstMarkAngle{D}{A}{B}{\tiny$A$}
\pstMarkAngle{A}{B}{C}{\tiny$B$}
\pstMarkAngle{B}{C}{D}{\tiny$C$}
\pstMarkAngle{C}{D}{A}{\tiny$D$}
\end{pspicture}}
\end{document}
如果您想使其可靠,请进行编辑。