Feuerbachkreis

source  =  
        DirectoryName[
          ToFileName["FileName" /. 
              NotebookInformation[EvaluationNotebook[]]]];
SetDirectory[source];
\(\(\(Needs["GeoBeweiser`"]\)\(
\)
    \)\)
clearndg[];
Clear[u1, u2, u3, x1, x2, x3, x4, x5, x7, x8, x9, x10, x11, x13, x14, 
        x15, x16, x17, x18, y];

vars := {x1, x2, x3, x4, x5, x7, x8, x9, x10, x11, x13, x14, x15, 
          x16, x17, x18, y};
parameters := {u1, u2, u3};

\(\(\( (*Punkte\ definieren*) \)\(
\)\(\(Unprotect[
        C];\)

    A = point[0, 0]; B = point[u1, 0];

    \(C = point[u2, u3];\)

    Ma = point[x1, x2]; Mb = point[x3, x4]; 
    Mc = point[x5, 0];

    FA = point[x7, x8]; FB = point[x9, x10]; 
    FC = point[x11, 0];

    NA = point[x13, x14]; NB = point[x15, x16]; 
    NC = point[x17, x18];\)\)\)

a = 
      ppline[B, C]

b = ppline[A, C]

c = ppline[A, B]

H = intersectionpoint[ppline[A, FA], ppline[C, FC]]

S = intersectionpoint[ppline[A, Ma], ppline[C, Mc]]

kFeuerbach = p3circle[Mc, FC, NA]

MFeuerbach = circlecenter[kFeuerbach]

gEuler = ppline[H, S]

kUmkreis = p3circle[A, B, C]

MUmkreis = circlecenter[kUmkreis]

AddGleichung[
        midpoint[B, C] - Ma];

    AddGleichung[midpoint[A, C] - Mb];

    AddGleichung[midpoint[B, A] - Mc];

(*Höhenfußpunkte*) 
AddGleichung[
        pedalpoint[A, a] - FA];

    AddGleichung[pedalpoint[B, b] - FB];

    AddGleichung[pedalpoint[C, c] - FC];

AddGleichung[
        midpoint[H, A] - NA];

    AddGleichung[midpoint[H, B] - NB];

    AddGleichung[midpoint[H, C] - NC];

(* polynomials *)
polys=Map[Numerator[Together[#]] &, Gleichungen]

(*conclusion Feuerbachkreis*) 
zz = {FA, FB, FC, NA, NB, NC, Ma, Mb, Mc};

cons = Map[ (oncircle[#1, kFeuerbach]) &, zz];

Map[IdealMember[#1, polys, vars] &, cons] // Timing

conEuler1 = 
        online[MFeuerbach, gEuler];

    conEuler2 = online[MUmkreis, gEuler];

{IdealMember[conEuler1, polys, vars], 
IdealMember[
          conEuler2, polys, vars]} // Timing