1

2

B'

C'

37

X(37)     CROSSPOINT OF X(1) AND X(2)

X(37), labeled 37, is here constructed as the crosspoint 
of X(1) and X(2), labeled 1 and 2, respectively. For 
information on finding a crosspoint, see “crosspoint” in 
the Encyclopedia of Triangle Centers Glossary.

Contributed by Michael Stairs, August 2018.

Drag A, B, C.

P_1 = (7.096435139141428, 6.116699767626125)
P_2 = (2.3151179581944414, 5.240229518373814)
P_3 = (10.295579407573461, 5.148030702394254)
A = (12.890435255060053, 5.805890984355638)
B = (7.90775346670495, 3.56409350162559)
C = (12.551077525861624, 3.535262715656019)
f = Segment(B, A)
g = Segment(A, C)
h = Segment(C, B)
P = (7.359824056239101, 8.506107702613324)
l = Line(A, P)
I = Point(l)
m = Line(B, P)
K = Point(m)
n = Line(C, P)
M = Point(n)
D = Tool1(A, B, C)
E = Tool2(A, C, B)
i = Ray(A, D)
j = Ray(C, D)
k = Ray(B, D)
p = Ray(B, E)
q = Ray(A, E)
r = Ray(C, E)
F = Intersect(g, k)
G = Intersect(f, j)
A' = Intersect(h, i)
B'' = Intersect(g, p)
C'' = Intersect(f, r)
A'' = Intersect(h, q)
s = Segment(C'', B'')
t = Segment(B'', A'')
a = Segment(A'', C'')
b = Segment(G, A')
c = Segment(A', F)
d = Segment(F, G)
E' = Intersect(k, a)
D' = Intersect(i, s)
F' = Intersect(j, t)
e = Segment(C'', F')
f_1 = Segment(E', B'')
g_1 = Segment(A'', D')
H = Intersect(e, f_1)

Tool: HarmConj
Constructs harmonic conjugate of C (located on line AB) wrt A and B. Needs two arbitrary points P and Q that are not on AB to calculate.
Input: A, B, C, P, Q
Output: F

f = Line(A, B)
g = Line(A, P)
h = Line(P, C)
i = Line(P, B)
j = Line(Q, B)
R = Intersect(h, j)
k = Line(A, R)
S = Intersect(i, k)
l = Line(Q, S)
F = Intersect(f, l)

Tool: Crosspoint
Crosspoint[ <Point>, <Point>, <Point>, <Point>, <Point> ]
Input: A, B, C, P, Q
Output: X

f = Segment(B, A)
g = Segment(A, C)
h = Segment(C, B)
i = Line(B, P)
j = Line(A, P)
k = Line(C, P)
m = Line(A, Q)
n = Line(C, Q)
C' = Intersect(k, f)
B' = Intersect(i, g)
A' = Intersect(j, h)
p = Segment(C', B')
q = Segment(B', A')
D = Intersect(m, p)
F = Intersect(n, q)
b = Segment(C', F)
g_1 = Segment(D, A')
X = Intersect(b, g_1)

Tool: X(1) (command Tool1)
Incenter[ <Point>, <Point>, <Point> ]
Input: A, B, C
Output: Incenter

f = Line(A, B)
g = Line(B, C)
h = Line(C, A)
i, j = AngularBisector(f, g)
k, l = AngularBisector(h, g)
Incenter = Intersect(j, l)

Tool: X(2) (command Tool2)
Tool2[ <Point>, <Point>, <Point> ]
Input: A, B, C
Output: X2

D = Midpoint(A, B)
F = Midpoint(A, C)
i = Line(F, B)
j = Line(D, C)
X2 = Intersect(i, j)

Tool: X(3) (command Tool4)
Tool4[ <Point>, <Point>, <Point> ]
Input: A, B, C
Output: D

i = LineBisector(B, C)
j = LineBisector(A, C)
D = Intersect(i, j)

Tool: X(4) (command Tool3)
Tool3[ <Point>, <Point>, <Point> ]
Input: A, B, C
Output: X4

f = Line(A, B)
g = Line(B, C)
i = OrthogonalLine(A, g)
j = OrthogonalLine(C, f)
X4 = Intersect(i, j)

Tool: X(5) (command Tool5)
Tool5[ <Point>, <Point>, <Point> ]
Input: A, B, C
Output: L

J = Tool3(A, B, C)
K = Tool4(A, C, B)
L = Midpoint(K, J)

Tool: X(6) (command Tool6)
Tool6[ <Point>, <Point>, <Point> ]
Input: A, B, C
Output: G

f = Line(A, B)
g = Line(B, C)
h = Line(C, A)
F = Midpoint(A, B)
E = Midpoint(A, C)
n, p = AngularBisector(h, g)
q, r = AngularBisector(f, g)
F' = Mirror(F, p)
C' = Mirror(C, p)
k' = Segment(F', C')
E' = Mirror(E, r)
B' = Mirror(B, r)
j' = Segment(E', B')
G = Intersect(k', j')

Tool: X(7) (command Tool7)
Tool7[ <Point>, <Point>, <Point> ]
Input: A, B, C
Output: K

g = Line(B, C)
h = Line(C, A)
G = Tool1(A, B, C)
i = OrthogonalLine(G, g)
H = Intersect(g, i)
c = Circle(G, H)
J = Intersect(c, h, 1)
j = Line(B, J)
k = Line(A, H)
K = Intersect(j, k)

Tool: X(8) (command Tool8)
Tool8[ <Point>, <Point>, <Point> ]
Input: A, B, C
Output: J

f = Line(A, B)
g = Line(B, C)
h = Line(C, A)
i, j = AngularBisector(f, g)
k, l = AngularBisector(g, h)
m, n = AngularBisector(h, f)
D = Intersect(i, l)
E = Intersect(j, m)
q = OrthogonalLine(D, f)
r = OrthogonalLine(E, h)
H = Intersect(f, q)
I = Intersect(h, r)
s = Line(B, I)
t = Line(C, H)
J = Intersect(s, t)

Tool: X(9) (command Tool9)
Tool9[ <Point>, <Point>, <Point> ]
Input: A, B, C
Output: G

f = Line(A, B)
g = Line(B, C)
h = Line(C, A)
i, j = AngularBisector(f, g)
k, l = AngularBisector(g, h)
D = Intersect(i, l)
E = Intersect(i, k)
F = Intersect(j, k)
G = Tool6(D, E, F)

Tool: X(10) (command Tool10)
Tool10[ <Point>, <Point>, <Point> ]
Input: A, B, C
Output: G

D = Midpoint(B, C)
E = Midpoint(A, C)
F = Midpoint(B, A)
G = Tool1(F, D, E)

Tool: X(11) (command Tool11)
Tool11[ <Point>, <Point>, <Point> ]
Input: A, B, C
Output: L

g = Line(B, C)
G = Tool1(B, C, A)
i = OrthogonalLine(G, g)
H = Intersect(g, i)
c = Circle(G, H)
I = Tool5(A, C, B)
j = OrthogonalLine(A, g)
J = Intersect(g, j)
d = Circle(I, J)
L = Intersect(c, d, 1)

Tool: X(12) (command Tool12)
Tool12[ <Point>, <Point>, <Point> ]
Input: A, B, C
Output: K

1

2

5

56

12

G = Tool1(A, B, C)
H = Tool2(A, B, C)
I = Tool5(A, B, C)
J = Tool56(A, B, C)
i = Line(G, I)
j = Line(H, J)
K = Intersect(i, j)

Tool: X(13) (command Tool13)
Tool13[ <Point>, <Point>, <Point> ]
Input: A, B, C
Output: J

13

c = Circle(B, A)
d = Circle(A, B)
G = Intersect(c, d, 1)
p = Circle(B, C)
q = Circle(C, B)
I = Intersect(p, q, 2)
s = Segment(G, C)
t = Segment(I, A)
J = Intersect(s, t)

Tool: X(14) (command Tool14)
Tool14[ <Point>, <Point>, <Point> ]
Input: A, B, C
Output: J

14

t = Circle(B, A)
c_1 = Circle(A, B)
H = Intersect(t, c_1, 2)
d_1 = Circle(C, B)
e_1 = Circle(B, C)
I = Intersect(d_1, e_1, 2)
i = Line(A, I)
j = Line(C, H)
J = Intersect(i, j)

Tool: X(15) (command Tool15)
Tool15[ <Point>, <Point>, <Point> ]
Input: A, B, C
Output: H

13

15

f = Line(A, B)
g = Line(B, C)
h = Line(C, A)
G = Tool13(A, B, C)
i = Line(B, G)
j = Line(C, G)
a, b = AngularBisector(h, g)
f_1, g_1 = AngularBisector(g, f)
j' = Mirror(j, b)
i' = Mirror(i, g_1)
H = Intersect(j', i')

Tool: X(16) (command Tool16)
Tool16[ <Point>, <Point>, <Point> ]
Input: A, B, C
Output: H

14

16

f = Line(A, B)
g = Line(B, C)
h = Line(C, A)
i, j = AngularBisector(f, g)
l, m = AngularBisector(h, g)
G = Tool14(A, B, C)
b = Line(B, G)
f_1 = Line(C, G)
h_1 = Mirror(f_1, m)
b' = Mirror(b, j)
H = Intersect(h_1, b')

Tool: X(17) (command Tool17)
Tool17[ <Point>, <Point>, <Point> ]
Input: A, B, C
Output: M

17

h_1 = Circle(A, B)
k_1 = Circle(B, A)
p_1 = Circle(B, C)
q_1 = Circle(C, B)
G = Intersect(p_1, q_1, 2)
H = Intersect(h_1, k_1, 2)
K = Tool2(G, C, B)
L = Tool2(H, B, A)
m = Line(K, A)
n = Line(C, L)
M = Intersect(m, n)

Tool: X(18) (command Tool18)
Tool18[ <Point>, <Point>, <Point> ]
Input: A, B, C
Output: M

18

r_1 = Circle(A, C)
s_1 = Circle(C, A)
G = Intersect(r_1, s_1, 2)
e_2 = Circle(B, C)
f_2 = Circle(C, B)
I = Intersect(e_2, f_2, 1)
J = Tool2(A, C, G)
L = Tool2(B, I, C)
m = Line(A, L)
n = Line(B, J)
M = Intersect(m, n)

Tool: X(19) (command Tool19)
Tool19[ <Point>, <Point>, <Point> ]
Input: A, B, C
Output: L

31

19

f = Line(A, B)
g = Line(B, C)
h = Line(C, A)
D = Tool1(A, B, C)
i = Line(B, D)
j = Line(A, D)
l = Line(C, D)
E = Intersect(f, l)
F = Intersect(h, i)
G = Intersect(g, j)
H = Tool31(A, B, C)
b = Line(E, F)
j_1 = Line(F, G)
l_1 = Line(H, G)
n_1 = Line(E, H)
I = Intersect(b, l_1)
J = Intersect(j_1, n_1)
a_1 = Line(I, A)
b_1 = Line(C, J)
L = Intersect(a_1, b_1)

Tool: X(20) (command Tool20)
Tool20[ <Point>, <Point>, <Point> ]
Input: A, B, C
Output: E'

20

D = Tool4(A, B, C)
E = Tool3(A, B, C)
E' = Mirror(E, D)

Tool: X(21) (command Tool21)
Tool21[ <Point>, <Point>, <Point> ]
Input: A, B, C
Output: M

21

D = Tool1(A, B, C)
E = Tool2(A, D, C)
G = Tool2(B, D, A)
H = Tool4(A, B, D)
I = Tool4(A, D, C)
i = Line(G, H)
j = Line(E, I)
M = Intersect(i, j)

Tool: X(22) (command Tool22)
Tool22[ <Point>, <Point>, <Point> ]
Input: A, B, C
Output: N

22

D = Tool4(A, B, C)
c_2 = Circle(D, C)
H = Midpoint(A, C)
J = Midpoint(B, A)
m = Line(B, H)
n = Line(C, J)
F = Intersect(c_2, n, 2)
G = Intersect(c_2, m, 2)
b = Tangent(C, c_2)
i_1 = Tangent(A, c_2)
j_1 = Tangent(B, c_2)
K = Intersect(b, i_1)
l_1 = Line(G, K)
L = Intersect(i_1, j_1)
m_1 = Line(F, L)
N = Intersect(l_1, m_1)

Tool: X(23) (command Tool23)
Tool23[ <Point>, <Point>, <Point> ]
Input: A, B, C
Output: D'

2

3

23

D = Tool2(A, B, C)
E = Tool4(A, B, C)
c_2 = Circle(E, C)
D' = Mirror(D, c_2)

Tool: X(24) (command Tool24)
Tool24[ <Point>, <Point>, <Point> ]
Input: A, B, C
Output: H

2

3

6

54

24

D = Tool2(A, B, C)
E = Tool4(A, C, B)
F = Tool6(A, B, C)
G = Tool54(A, B, C)
i = Line(G, F)
j = Line(D, E)
H = Intersect(i, j)

Tool: X(25) (command Tool25)
Tool25[ <Point>, <Point>, <Point> ]
Input: A, B, C
Output: N

25

g = Line(B, C)
h = Line(A, C)
D = Tool4(A, B, C)
c_2 = Circle(D, A)
b = OrthogonalLine(A, g)
i_1 = OrthogonalLine(B, h)
F = Intersect(h, i_1)
G = Intersect(g, b)
l_1 = Tangent(C, c_2)
m_1 = Tangent(A, c_2)
n_1 = Tangent(B, c_2)
K = Intersect(l_1, m_1)
a_1 = Line(K, F)
L = Intersect(l_1, n_1)
b_1 = Line(L, G)
N = Intersect(a_1, b_1)

Tool: X(26) (command Tool26)
Tool26[ <Point>, <Point>, <Point> ]
Input: A, B, C
Output: K

26

D = Tool4(A, B, C)
c_2 = Circle(D, C)
l_1 = Tangent(A, c_2)
m_1 = Tangent(C, c_2)
n_1 = Tangent(B, c_2)
E = Intersect(l_1, n_1)
F = Intersect(l_1, m_1)
G = Intersect(m_1, n_1)
K = Tool4(E, F, G)

Tool: X(27) (command Tool27)
Tool27[ <Point>, <Point>, <Point> ]
Input: A, B, C
Output: K

2

3

7

81

27

D = Tool2(A, B, C)
E = Tool4(A, B, C)
F = Tool7(A, B, C)
G = Tool81(A, B, C)
l_1 = Line(E, D)
m_1 = Line(F, G)
K = Intersect(l_1, m_1)

Tool: X(28) (command Tool28)
Tool28[ <Point>, <Point>, <Point> ]
Input: A, B, C
Output: K

1

2

3

19

28

D = Tool1(A, B, C)
E = Tool2(A, B, C)
F = Tool4(A, B, C)
G = Tool19(A, B, C)
l_1 = Line(E, F)
m_1 = Line(G, D)
K = Intersect(l_1, m_1)

Tool: X(31) (command Tool31)
Tool31[ <Point>, <Point>, <Point> ]
Input: A, B, C
Output: H

75

31

f = Line(A, B)
g = Line(B, C)
h = Line(C, A)
G = Tool75(A, B, C)
j = Line(B, G)
l = Line(A, G)
m, n = AngularBisector(f, h)
a, b = AngularBisector(f, g)
l' = Mirror(l, n)
j' = Mirror(j, b)
H = Intersect(l', j')

Tool: X(35) (command Tool35)
Tool35[ <Point>, <Point>, <Point> ]
Input: A, B, C
Output: H

1

3

21

10

35

D = Tool1(A, B, C)
E = Tool4(B, C, A)
F = Tool21(A, B, C)
G = Tool10(A, B, C)
i = Line(E, D)
j = Line(G, F)
H = Intersect(i, j)

Tool: X(36) (command Tool36)
Tool36[ <Point>, <Point>, <Point> ]
Input: A, B, C
Output: H

3

1

36

D = Tool4(A, B, C)
E = Tool1(A, B, C)
c = Circle(D, C)
i = Line(D, E)
j = OrthogonalLine(E, i)
G = Intersect(c, j, 2)
k = Tangent(G, c)
H = Intersect(i, k)

Tool: X(54) (command Tool54)
Tool54[ <Point>, <Point>, <Point> ]
Input: A, B, C
Output: E

5

54

f = Segment(B, A)
g = Segment(A, C)
h = Segment(C, B)
D = Tool5(A, B, C)
D' = Mirror(D, g)
D'_1 = Mirror(D, f)
D'_2 = Mirror(D, h)
E = Tool4(D', D'_1, D'_2)

Tool: X(56) (command Tool56)
Tool56[ <Point>, <Point>, <Point> ]
Input: A, B, C
Output: H

8

f = Line(A, B)
g = Line(B, C)
h = Line(C, A)
G = Tool8(A, B, C)
k, l = AngularBisector(h, g)
m, n = AngularBisector(f, h)
p = Line(A, G)
q = Line(C, G)
p' = Mirror(p, n)
q' = Mirror(q, l)
H = Intersect(p', q')

Tool: X(75) (command Tool75)
Tool75[ <Point>, <Point>, <Point> ]
Input: A, B, C
Output: K

75

f = Line(A, B)
g = Line(B, C)
D = Midpoint(B, C)
F = Midpoint(B, A)
G = Tool1(A, B, C)
j = Line(A, G)
l = Line(C, G)
H = Intersect(f, l)
I = Intersect(g, j)
H' = Mirror(H, F)
m = Line(H', C)
I' = Mirror(I, D)
n = Line(A, I')
K = Intersect(m, n)

Tool: X(81) (command Tool81)
Tool81[ <Point>, <Point>, <Point> ]
Input: A, B, C
Output: K

1

21

2

6

81

D = Tool1(A, B, C)
E = Tool21(A, B, C)
F = Tool2(A, B, C)
G = Tool6(A, B, C)
l_1 = Line(E, D)
m_1 = Line(G, F)
K = Intersect(l_1, m_1)

Tool: X(34) (command Tool34)
Input: A, B, C
Output: H

1

4

24

36

34

D = Tool1(A, B, C)
E = Tool3(A, B, C)
F = Tool24(A, C, B)
G = Tool36(A, C, B)
i = Line(F, G)
j = Line(D, E)
H = Intersect(i, j)

Tool: X(37) (command Tool37)
Input: A, B, C
Output: H

1

2

37

f = Segment(B, A)
g = Segment(A, C)
h = Segment(C, B)
D = Tool1(A, B, C)
E = Tool2(A, C, B)
j = Ray(C, D)
k = Ray(B, D)
p = Ray(B, E)
q = Ray(A, E)
r = Ray(C, E)
B'' = Intersect(g, p)
C'' = Intersect(f, r)
A'' = Intersect(h, q)
t = Segment(B'', A'')
a = Segment(A'', C'')
E' = Intersect(k, a)
F' = Intersect(j, t)
e = Segment(C'', F')
f_1 = Segment(E', B'')
H = Intersect(e, f_1)