# How to divide arc, line, and angle with a certain ratio?

A simple example:

\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}


The result of compiling:

Question 1:

How to get a point M such as MA=2/3AB, or more generally MA=(a/b)AB and a point M' belong to small arc CA such as arc M'A=2/3AB, or more generally M'A=(a/b)AB.

Question 2:

How to get bisector of angle A BUT are two bisectors or three bisectors.

Responding to AS'comment below.

• Can you explain your second question more clearly please? what do you mean by "BUT are ..." – Thruston Dec 10 '18 at 9:16
• @Thruston In pst-eucl documentation, only to draw one bisector, " BUT are " is equivalent " to get". My English is not so good. :-)) – user173875 Dec 10 '18 at 9:19

# Step 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}


Note: HomCoef cannot accept RPN 2 3 div so I have to insert 0.6666 (3 decimals places should suffice, I think).

# Step 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}


Note: AngleCoef must come before RotAngle. It is not commutative!

# Step 3 (Final)

\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}
\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}


Note: We have \pstSegmentMark (ends with Mark) to mark a segment but we have \pstMarkAngle (begins with Mark) to mark an angle. It seems the package author likes making inconsistent names.

# Last Edit

\pscalculate from pst-calculate package can make me possible to insert infix calculations fed to the HomCoef and 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}
\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}

• Very good. This is a exciting trick. – user173875 Dec 10 '18 at 13:44
\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}


• Mr. Herbert, could you modify the HomCoef and AngleCoef to be able to accept postfix notation? Defining a new command named \pstAngleMark as an alias of \pstMarkAngle. Modifying the core such that AngleCoef and RotAngle can be interchanged. Thank you! – Artificial Stupidity Dec 10 '18 at 10:41
• I found a "bug" in \psCircleTangents. See my answer. Try change \x from 3 to 5 with step 1. The tangent line moves from one side to opposite side when the radii change from smaller to equal. – Artificial Stupidity Dec 10 '18 at 17:41