$\textsf{\LARGE I}$

$\textsf{\LARGE O}$

$\textsf{\LARGE r}$

$\textsf{\LARGE A}$

$\textsf{\LARGE A^{-1}}$

$\textsf{\LARGE X}$

Fix point O

T-circle

Fix point I

Symmetric

T-perp. bisector

Midpoint

Perpendicular

Parallel

T-inversion

If we fix a point O on the plane, we can consider the taxi distance from 
the rest of the points to O. We will denote XO by the T-distance to O.

By fixing another point I different from O, we establish
an orientation O→I  and a line. 
We will take as unit the T-distance from O to I.

Given a point A on line r, there is only one other point A'
on this line at the same distance from O as A.
This T-symmetric coincides with the E-symmetric. 

Given two distinct points A and B, we can find
all those that are equidistant from them.
This T-perp. bisector doesn't coincide with the Euclidean.

Intersecting the T-perp. bisector with the line,
we obtain the midpoint,
which coincides with the Euclidean midpoint.

Perpendicular is the same as in Euclidean geometry,
but the orthogonal projection of a point on a line
does not, in general, give the closest point on the line.

With two perpendiculars we obtain a parallel through P to r.

Taking A to the horizontal through O
and inverting that point on the dotted circle,
we create similar triangles that guarantee T-inversion.

If B = A, we take A as midpoint.

Point O has no inverse.
I and I' are inverses of themselves.
The inverse of the inverse of A is A.
T-A⁻¹ does not match E-A⁻¹.

The points that are T-equidistant from O make up a square. If the radius is r, the perimeter is 8r, so:       

$\textsf{\LARGE B}$

$\textsf{\LARGE I'}$

 +

If A=O, we take A'=O

We can still think of T-lines as if they were E-lines,
since it only changes the way of measuring each segment.

Let's remember that the pixels force the line itself to
that GeoGebra draws is formed by horizontal and vertical sections!

$\textsf{\LARGE A'}$

Zoom sobre pixelado

\frac{E-circle}{E-diameter}= π \\\\frac{T-circle}{T-diameter}= 4

$\textsf{\LARGE Q}$

$\textsf{\LARGE P'}$

XO - r = 0

XO(x,y) := |x – x(O)| + |y – y(O)|

I = (0.75, 0.5)
O: (0, 2.25)
r = Line(O, I)
A = Point(r)
dA: abs(x(A - O)) + abs(y(A - O))
G: (x(A), y(O))
dI: abs(x(I - O)) + abs(y(I - O))
c = Circle(O, (x(I), y(O)))
G' = Mirror(G, c)
V = Intersect(r, Line[G', G' + (0, 1)])
P: (2.5, 5.5)
anima1 = 0.394 (slider from 0 to 1)
c2 = Polygon(O - (4, 0), O - (0, 4), 4)
op1 = true
op2 = false
op3 = false
op4 = false
op5 = false
op6 = false
op7 = false
op8 = false
op9 = false
B = Point(r)
I' = Mirror(I, O)
K = Point(c2)
A1: O + (anima1 * (P - O))
a = PathParameter(A)
Ex: (x(A1), y(O))
Ey: (x(O), y(A1))
l1: {Polygon[O, (x(O), y(A1)), A1, (x(A1), y(O))]}
polígono4 = Polygon(O - (dA, 0), O - (0, dA), 4)
s1 = Sequence(Polygon[O - (Max[0, k + (anima1 * (abs(x(P - O)) + abs(y(P - O))))], 0), O - (0, Max[0, k + (anima1 * (abs(x(P - O)) + abs(y(P - O))))]), 4], k, -5, 20, 0.5)
dAB: abs(x(A - B)) + abs(y(A - B))
J: A + Vector[A, B] / 2
f: y = x + y(J) - x(J)
polAB, a_1, g, b, i = Polygon(A, (x(A), y(B)), B, (x(B), y(A)))
L, M = Intersect(f, polAB)
j = Segment(M, L)
polígono1c = Polygon(A - (dAB, 0), A - (0, dAB), 4)
polígono2c = Polygon(B - (dAB, 0), B - (0, dAB), 4)
N, Q, N_1, N_2 = Intersect(polígono1c, polígono2c)
l = If(x(M) ≟ x(N) ∨ y(M) ≟ y(N), Ray[M, N], Ray[L, N])
k = Ray(If[Defined[M] ∧ x(L) ≠ x(Q) ∧ y(L) ≠ y(Q), M, L], Q)
D: (0.99, -1.7)
A' = Mirror(A, O)
F = Intersect(j, r)
h = OrthogonalLine(P, r)
m = Line(P, r)
polígono9 = Polygon(O - (dI, 0), O - (0, dI), 4)
n = Line(G', G' + (0, 1))
dV: abs(x(V) - x(O)) + abs(y(V) - y(O))
t1: {Polygon[O, G, A]}
p = Segment(V, G')
t2: {Polygon[O, G', V]}
d = Circle(F, B)
polígono6 = Polygon(F - (dAB / 2, 0), F - (0, dAB / 2), 4)
e = Circle(O, A)
H = (-7.5, -4)
R = (-6.351685552214645, -4)
T = (18.59, -2.5)
W = (18.59, -7.25)
pix = false
l2 = Segment(K, O)
anima4 = 0.784 (slider from 0 to 1)
l3 = Sequence(Point[e, Mod[anima4 + k, 2] / 2], k, 0, 2, 0.1)
q = Line(P, yAxis)
S = Intersect(r, q)
U = Intersect(h, r)
ec1:=XO - 4 = 0
s = Segment((x(I), y(O)), I)