Given only the coordinates of $A,B,C,D$, the incenter can be recovered purely by reflections across diagonals and perpendicular constructions, without ever touching angle bisectors.
- Take diagonal $AC$.
- Reflect $D$ across the line $AC$ to obtain $D'$.
- Intersect the line $BD'$ with $AC$; call this point $H_1$.
- $H_1$ is exactly the foot of the perpendicular from the incenter $I$ to $AC$.
- Therefore, the line through $H_1$ perpendicular to $AC$ passes through $I$.
- Repeat symmetrically with the other diagonal $BD$:
- Reflect $C$ across $BD$ to get $C'$.
- Intersect $AC'$ with $BD$ to obtain $H_2$.
- The line through $H_2$ perpendicular to $BD$ also passes through $I$.
- Finally, intersect these two perpendicular lines; their intersection is the incenter $I$.
This is a rational map $\text{Gr}(1,2)^4 \dashrightarrow \mathbb R^2$ and it is symmetric under permutations of the four input lines.
import numpy as np
# Generate random tangential quadrilateral using random tangency angles
def tangential_quad():
thetas = np.sort(np.random.uniform(0, 2*np.pi, 4))
verts = []
for i in range(4):
t1, t2 = thetas[i], thetas[(i+1)%4]
A = np.array([[np.cos(t1), np.sin(t1)],
[np.cos(t2), np.sin(t2)]])
v = np.linalg.solve(A, [1,1])
verts.append(v)
return np.array(verts)
def intersect(P, Q, R, S):
# intersection of lines PQ and RS
A = np.array([[Q[0]-P[0], R[0]-S[0]],
[Q[1]-P[1], R[1]-S[1]]])
b = np.array([R[0]-P[0], R[1]-P[1]])
t,u = np.linalg.solve(A,b)
return P + t*(Q-P)
def test_once():
A,B,C,D = tangential_quad()
I = np.array([0.0,0.0]) # incircle center before shift
O = intersect(A,C,B,D) # diagonal intersection
# shift so O is origin
A,B,C,D = A-O, B-O, C-O, D-O
I = I-O
xA,yA = A; xB,yB = B; xC,yC = C; xD,yD = D
denom = (xA*yB - yA*xB)
xI = (-2*(xA*xB + yA*yB)/denom)*((xA*yC)/(xA+xC) - (xB*yD)/(xB+xD))
yI = ( 2*(xA*xB + yA*yB)/denom)*((xA*xC)/(xA+xC) - (xB*xD)/(xB+xD))
return np.linalg.norm([xI-I[0], yI-I[1]])
# run multiple tests
errs = [test_once() for _ in range(20)]
print(max(errs))
Let the coordinates of the vertices be $A=(x_A, y_A)$, $B=(x_B, y_B)$, $C=(x_C, y_C)$, and $D=(x_D, y_D)$.
Let the diagonals $AC$ and $BD$ meet at the origin. This implies the relations: $$x_A y_C - y_A x_C = 0 \quad \text{and} \quad x_B y_D - y_B x_D = 0$$ By performing the construction of reflecting $D$ across $AC$, finding the foot $H_1$, and repeating for $H_2$ on $BD$, we derive the lines whose intersection is $I$. Solving the resulting linear system and simplifying using the collinearity conditions, we obtain the coordinates of $I = (x_I, y_I)$:
$$x_I = \frac{-2(x_A x_B + y_A y_B)}{(x_A y_B - y_A x_B)} \left( \frac{x_A y_C}{x_A + x_C} - \frac{x_B y_D}{x_B + x_D} \right)$$
$$y_I = \frac{2(x_A x_B + y_A y_B)}{(x_A y_B - y_A x_B)} \left( \frac{x_A x_C}{x_A + x_C} - \frac{x_B x_D}{x_B + x_D} \right)$$
These formulas represent a rational map from the configuration space of the four vertices to the plane. For any tangential quadrilateral, these coordinates coincide with the incenter. In the case of a kite (where one diagonal is an axis of symmetry), the construction involves a limit as the diagonals are perpendicular ($x_A x_B + y_A y_B = 0$) and the harmonic terms become singular ($x_A+x_C = 0$), but the product remains finite and identifies the incenter.
In vector notation, let $u = A \cdot B$ and $v = A \times B$ (the 2D cross product $x_A y_B - y_A x_B$). The formulas can be concisely written as: $$I = \frac{2(A \cdot B)}{A \times B} \left( \frac{x_B x_D}{x_B + x_D} - \frac{x_A x_C}{x_A + x_C}, \frac{x_A y_C}{x_A + x_C} - \frac{x_B y_D}{x_B + x_D} \right)$$
Why this is surprising:
The definition of an incenter is “equal distance to all four sides.” That sounds quadratic and square-rooty. If you try to compute $I$ directly from distance-equality equations, you immediately hit square roots.
Corollary: if the coordinates of the vertices $A, B, C,$ and $D$ are rational numbers, then the coordinates of the incenter $I$ (or its algebraic continuation) must also be rational.
Question.
When $ABCD$ is a tangential quadrilateral, how do you prove $I$ is exactly the incenter?


Factoroperation in some computer algebra system). They don't seem to work as written. Consider: Position the quad so that its diagonals meet at the origin. Then $x_A y_C-y_A x_C=x_By_D-y_B x_D=0$, eliminating chunks of the expressions. But, then, everything else immediately cancels as well (without even having to substitute $x_{D'}$, etc), so that $(x_I,y_I)=(0,0)$ (the intersection of the diagonals), not your incenter. $\endgroup$