一个简单的例子:
\documentclass[12pt,border=5pt]{standalone}
\usepackage{newcent,pstricks,pst-eucl}
\usepackage{auto-pst-pdf}
\begin{document}
\begin{pspicture}
\pstTriangle(2,4){A}(0,0){B}(6,0){C}
\pstCircleABC[PosAngle=60]{A}{B}{C}{O}
\end{pspicture}
\end{document}
编译结果:
问题 1:
如何得到一个点 M 例如 MA=2/3AB,或者更一般的 MA=(a/b)AB 和一个点 M' 属于小圆弧 CA 例如圆弧 M'A=2/3AB,或者更一般的 M'A=(a/b)AB。
问题2:
如何求角 A 的角平分线但是是两条角平分线还是三条角平分线。
回应下面 AS 的评论。
答案1
步骤1
\documentclass[pstricks,12pt,border=15pt]{standalone}
\usepackage{pst-eucl}
\begin{document}
\begin{pspicture}[showgrid](-1,-3)(7,5)
\pstTriangle(2,4){A}(0,0){B}(6,0){C}
\pstCircleABC[PosAngle=60]{A}{B}{C}{O}
\pstHomO[HomCoef=0.6666]{A}{B}[M]% 2/3 --> 0.6666
\end{pspicture}
\end{document}
注意:HomCoef
无法接受 RPN 2 3 div
,所以我必须插入0.6666
(我认为 3 位小数就足够了)。
第2步
\documentclass[pstricks,12pt,border=15pt]{standalone}
\usepackage{pst-eucl}
\begin{document}
\begin{pspicture}[showgrid](-1,-3)(7,5)
\pstTriangle(2,4){A}(0,0){B}(6,0){C}
\pstCircleABC[PosAngle=60]{A}{B}{C}{O}
\pstHomO[HomCoef=0.6666]{A}{B}[M]% 2/3 --> 0.6666
\pstRotation[AngleCoef=0.3333,RotAngle=\pstAngleAOB{C}{O}{A}]{O}{C}[M']
\end{pspicture}
\end{document}
注意:AngleCoef
必须位于 之前RotAngle
。它不可交换!
步骤 3(最终)
\documentclass[pstricks,12pt,border=15pt]{standalone}
\usepackage{pst-eucl}
\begin{document}
\begin{pspicture}[showgrid=false](-1,-3)(7,5)
\pstTriangle(2,4){A}(0,0){B}(6,0){C}
\pstCircleABC[PosAngle=225]{A}{B}{C}{O}
\pstHomO[HomCoef=0.6666]{A}{B}[M]% 2/3 --> 0.6666
\pstRotation[AngleCoef=0.3333,RotAngle=\pstAngleAOB{C}{O}{A}]{O}{C}[M']
\psset{PointName=none,PointSymbol=none}
\pstRotation[AngleCoef=0.3333,RotAngle=\pstAngleAOB{B}{A}{C}]{A}{B}[P1]
\pstRotation[AngleCoef=0.6666,RotAngle=\pstAngleAOB{B}{A}{C}]{A}{B}[P2]
\pstInterLL{B}{C}{A}{P1}{Q1}
\pstInterLL{B}{C}{A}{P2}{Q2}
\psset{Mark=MarkHash,MarkAngle=90,MarkAngleRadius=.8}
\pstMarkAngle{B}{A}{Q1}{}
\pstMarkAngle{Q1}{A}{Q2}{}
\pstMarkAngle{Q2}{A}{C}{}
\psset{linestyle=dashed}
\psline(A)(Q1)
\psline(A)(Q2)
\end{pspicture}
\end{document}
注意:我们用\pstSegmentMark
(以 结尾Mark
) 来标记线段,但用\pstMarkAngle
(以 开头Mark
) 来标记角度。看来包作者喜欢使用不一致的名称。
最后编辑
\pscalculate
来自pst-calculate
包可以让我插入中缀计算并输入到HomCoef
和AngleCoef
。
\documentclass[pstricks,12pt,border=15pt]{standalone}
\usepackage{pst-eucl}
\usepackage{pst-calculate}
\begin{document}
\begin{pspicture}[showgrid=false](-1,-3)(7,5)
\pstTriangle(2,4){A}(0,0){B}(6,0){C}
\pstCircleABC[PosAngle=225]{A}{B}{C}{O}
\pstHomO[HomCoef=\pscalculate{2/3}]{A}{B}[M]% Now without hard coded 0.6666
\pstRotation[AngleCoef=\pscalculate{1/3},RotAngle=\pstAngleAOB{C}{O}{A}]{O}{C}[M']
\psset{PointName=none,PointSymbol=none}
\pstRotation[AngleCoef=\pscalculate{1/3},RotAngle=\pstAngleAOB{B}{A}{C}]{A}{B}[P1]
\pstRotation[AngleCoef=\pscalculate{2/3},RotAngle=\pstAngleAOB{B}{A}{C}]{A}{B}[P2]
\pstInterLL{B}{C}{A}{P1}{Q1}
\pstInterLL{B}{C}{A}{P2}{Q2}
\psset{Mark=MarkHash,MarkAngle=90,MarkAngleRadius=.8}
\pstMarkAngle{B}{A}{Q1}{}
\pstMarkAngle{Q1}{A}{Q2}{}
\pstMarkAngle{Q2}{A}{C}{}
\psset{linestyle=dashed}
\psline(A)(Q1)
\psline(A)(Q2)
\end{pspicture}
\end{document}
答案2
\documentclass[pstricks,12pt,border=15pt]{standalone}
\usepackage{pst-eucl}
\begin{document}
\begin{pspicture}[showgrid](-1,-3)(7,5)
\pstTriangle(2,4){A}(0,0){B}(6,0){C}
\pstCircleABC[PosAngle=60]{A}{B}{C}{O}
\pstHomO[HomCoef=0.667]{A}{B}[M]
\pstRotation[AngleCoef=0.333,RotAngle=\pstAngleAOB{C}{O}{A}]{O}{C}[M']
\psset{PointSymbol=none,PointName=none}
\pstRotation[AngleCoef=0.333,RotAngle=\pstAngleAOB{B}{A}{C}]{A}{B}[M1]
\pstRotation[AngleCoef=0.667,RotAngle=\pstAngleAOB{B}{A}{C}]{A}{B}[M2]
\pcline[linestyle=dashed](A)(M1)
\pcline[linestyle=dashed](A)(M2)
\end{pspicture}
\end{document}