We discuss an elegant approach with harmonic conjugate points to trisect angle given 4 colinear points and generalize a solution for a geometric problem from X.com. For valid set of length AB, BC, and CD, it is always possible to only use compass and straightedge to find P. Then using straightedge is to trisect angle PAD by joining PB and PC. Notice this trisection problem is different from the ancient Greek version, in which you are asked to trisect arbitrary angle with no other information. It is impossible to complete the particular task with compass and straightedge only.

One line solution

Let’s use projective configuration and conclusion follows Apollonius : assume
AB=1
, then
BC=b=4/3
and
CD=c=x/3
.
In[]:=
(
2
b
+(-2+b)c)/.b->4/3
Out[]=
16
9
-
2c
3
Therefore
x=8
:
In[]:=
3*SolveValues[%==0,c][[1]]
Out[]=
8
Some solutions on X uses trigonometry, it would not be useful if the angle PAD fails to be right angle.

Apollonian circle and harmonic points

Given the trisection set up, the basic idea is from recognizing that PB bisects angle APC and PC bisects BPD.
In triangle APC, the trajectory of P is either on the perpendicular bisector of AC or on the Apollonian circle that passes point B and determined by
|PA|/|PC|=|AB|/|AC|=Constant
.
Same argument applies to the case in triangle BPD. You can visually check that there would not be possible to have intersection in for two perpendicular bisector, or one bisector and one circle. The only possible intersection are from two Apollonian circle if the length of BC and CD are chosen properly.
Let
A={0,0}
and
AD
on x-axis. Fix the length of AB = 1. Then use the internal and external angular bisector to construct the Apollonian circle for triangle PAC with
λ=|AB|/|AC|
. Thus
(F,B;A,C)=-1
forms harmonic conjugate points.
Similarly in triangle PBD. Thus
(G,C;B,D)=-1
forms harmonic conjugate points.
In[]:=
d1[b_]:=Piecewise
1+b
-1+b
,b>1,
-b-
2
b
-1+b
,0<b<=1
In[]:=
d2[b_,c_]:=Piecewise-
b(b+c)
b-c
,b<c,
c(b+c)
b-c
,b>c
Surprisingly, the centers (midpoint of BF and that of CG)and radii of both Apollonian circles have the same expression regardless of the piecewise functions:
In[]:=
c1[b_]:=1/(1-b)
In[]:=
c2[b_,c_]:=1+
2
b
b-c
In[]:=
r1[b_]:=b/Abs[b-1]
In[]:=
r2[b_,c_]:=b*c/Abs[b-c]
Let
u
indicate
2
y
:
In[]:=
Solve[{(x-c1[b])^2+u==r1[b]^2,(x-c2[b,c])^2+u==r2[b,c]^2},{x,u},​​Assumptions->b>0&&c>0]//FullSimplify
Out[]=
x
(1+b)(
2
b
+(-2+b)c)
2(
2
b
-c)
,u-
2
b
(1+b)(b+c)(-3c+b(1+b+c))
4
2
(
2
b
-c)

The variables
b
and
c
are valid if only if
u=
2
y
>=0
:
In[]:=
region=Reduce-
2
b
(1+b)(b+c)(-3c+b(1+b+c))
4
2
(
2
b
-c)
>=0&&b!=1&&b!=c,{b,c},PositiveReals
Out[]=
0<b<1&&
-b-
2
b
-3+b
≤c<b||c>b||1<b<3&&c≥
-b-
2
b
-3+b
Use the region as a test function:
In[]:=
bcTest[b_,c_]:=0<b<1&&
-b-
2
b
-3+b
≤c<b||c>b||1<b<3&&c≥
-b-
2
b
-3+b
Visualize separated domain region for
0<b<1
and
1<b<3
. Notice that we have a vertical asymptotic line at
b=3
for
-b-
2
b
-3+b
:
In[]:=
{RegionPlot[bcTest[b,c],{b,0,1},{c,0,1},PlotPoints->200],​​RegionPlot[bcTest[b,c],{b,1,3},{c,0,50},PlotPoints->200]}//Row
Out[]=
Use Manipulate to find other trisection by changing
b
and
c
(run the Utility section below first for proper visualizations):
DynamicModule{b,d1,d2,xp,yp,c,info={}},​​Panel[#,Style["|AB| = 1",18]]&@Manipulate​​Column@​​Splice@info,​​Graphics​​If[b!=1&&b!=c,{​​{Dashed,Circle[{c1[b],0},r1[b]]},​​{Dashed,Circle[{c2[b,c],0},r2[b,c]]}​​},Nothing​​],​​{Dashed,InfiniteLine[{0,0},{1,0}]},​​IfbcTest[b,c],​​xp=
(1+b)(
2
b
+(-2+b)c)
2(
2
b
-c)
;​​yp=-
2
b
(1+b)(b+c)(-3c+b(1+b+c))
4
2
(
2
b
-c)
;​​yp=
yp
;​​info={​​Row[{"Angle APB = ",180./π*angleBtw[{xp,yp},{xp,yp}-{1,0}]," degree"}],​​Row[{"Angle BPC = ",180./π*angleBtw[{xp,yp}-{1,0},{xp,yp}-{1+b,0}]," degree"}],​​Row[{"Angle APB = ",180./π*angleBtw[{xp,yp}-{1+b,0},{xp,yp}-{1+b+c,0}]," degree"}]};​​(Line[{{xp,yp},#}]&/@{​​{0,0},{1,0},{1+b,0},{1+b+c,0}}​​)~Join~{label["P",Point[{xp,yp}]]}​​,info={"","",""};Nothing,​​label["A",Point@{0,0}],​​label["B",Point@{1,0}],​​label["C",Point@{1+b,0}],​​label["D",Point[{1+b+c,0}]]​​,PlotRange->Full,ImageSize->{400,400}​​,​​{{b,4/3,"|BC|"},0.1,2},​​{{c,8/3,"|CD|"},0.2,5}​​

Comment of compass and straightedge

Utility functions

◼
  • Label function to decorate the letters in the graphics:
  • ◼
  • Simple function to compute angle between vectors shooting from P:
  • CITE THIS NOTEBOOK

    Angle trisection with compass, straightedge and harmonic conjugate points​
    by Shenghui Yang​
    Wolfram Community, STAFF PICKS, February 11, 2025
    ​https://community.wolfram.com/groups/-/m/t/3391719