hPriamka

Ukáž na dva body

A' = Mirror(A, Circle[(0, 0), 1])
B' = Mirror(B, Circle[(0, 0), 1])
k = If(Length[A] ≟ 1, Circle[A, B, B'], Circle[A, B, A'])
Q = Intersect(k, Circle[(0, 0), 1], 1)
P = Intersect(k, Circle[(0, 0), 1], 2)
M = If(Length[A] ≟ 1, B, A)
Obluk = CircumcircleArc(P, M, Q)
Diameter = AreCollinear((0, 0), A, B)
D = Intersect(Circle[(0, 0), 1], Line[A, B], 1)
S_P: (1000 * Rotate[D, 90°])
k_P = Circle(S_P, 1000)
P_D = Intersect(Circle[(0, 0), 1], k_P, 1)
Q_D = Intersect(Circle[(0, 0), 1], k_P, 2)
OblukD = CircumcircleArc(P_D, (0, 0), Q_D)
Nevlastne: Length[A] ≟ 1 ∧ Length[B] ≟ 1
t_{1N} = OrthogonalLine(A, Line[(0, 0), A])
t_{2N} = OrthogonalLine(B, Line[(0, 0), B])
S_N = Intersect(t_{1N}, t_{2N})
k_N = Circle(S_N, A)
M_N = Intersect(k_N, Ray[S_N, Midpoint[A, B]])
OblukN = CircumcircleArc(A, M_N, B)
hPriamka = If(Diameter, OblukD, If[Nevlastne, OblukN, Obluk])