#### D.2.4.14 locusto

Procedure from library `grobcov.lib` (see grobcov_lib).

Usage:
  locusto(L);
  The argument must be the output of locus or locusdg or envelop or envelopdg.
  It transforms the output into a string in standard form readable in many languages (Geogebra).

Return:
  The locus in string standard form

Note:
  It can only be called after computing either
  - locus(grobcov(F)) -> locusto( locus(grobcov(F)) ) - locusdg(locus(grobcov(F))) -> locusto( locusdg(locus(grobcov(F))) ) - envelop(F,C) -> locusto( envelop(F,C) ) -envelopdg(envelop(F,C)) -> locusto( envelopdg(envelop(F,C)) )

Example:

    LIB "grobcov.lib";
    ring R=(0,x,y),(x1,y1),dp;
    short=0;
    ideal S=x1^2+y1^2-4,(y-2)*x1-x*y1+2*x,(x-x1)^2+(y-y1)^2-1;
    locusto(locus(grobcov(S)));
    ==> [[[(x^4+2*x^2*y^2-9*x^2+y^4-9*y^2+4*y+12)],[[(y-2),(x)],[(2*y-3),(4*x^2-3\
       )]]],[Normal],1]],[[(x^2+y^2-4*y+3)],[[(2*y-3),(4*x^2-3)]]],[[Special],[y\
       1-2,x1]],1]],[[(y-2),(x)],[[1]]],[Normal],2]],[[(2*y-3),(4*x^2-3)],[[1]]]\
       ,[Normal],2]]]
    locusto(locusdg(locus(grobcov(S))));
    ==> [[[(x^4+2*x^2*y^2-9*x^2+y^4-9*y^2+4*y+12)],[[(y-2),(x)],[(2*y-3),(4*x^2-3\
       )]]],[Relevant],1]],[[(y-2),(x)],[[1]]],[Relevant],2]],[[(2*y-3),(4*x^2-3\
       )],[[1]]],[Relevant],2]]]
    kill R;
    //********************************************
    // 1. Take a fixed line l: x1-y1=0  and consider
    //    the family F of a lines parallel to l passing through the mover point M
    // 2. Consider a circle x1^2+x2^2-25, and a mover point M(x1,x2) on it.
    // 3. Compute the envelop of the family of lines.
    ring R=(0,x,y),(x1,y1),lp;
    poly F=(y-y1)-(x-x1);
    ideal C=x1^2+y1^2-25;
    short=0;
    // Curves Family F=
    F;
    ==> x1-y1+(-x+y)
    // Conditions C=
    C;
    ==> C[1]=x1^2+y1^2-25
    locusto(envelop(F,C));
    ==> [[[(x^2-2*x*y+y^2-50)],[[1]]],[[Special],[2*y1^2-25,x1+y1],[1]],1]]]
    locusto(envelopdg(envelop(F,C)));
    ==> [[[(x^2-2*x*y+y^2-50)],[[1]]],[Relevant],1]]]
    kill R;
    //********************************************
    // Steiner Deltoid
    // 1. Consider the circle x1^2+y1^2-1=0, and a mover point M(x1,y1) on it.
    // 2. Consider the triangle A(0,1), B(-1,0), C(1,0).
    // 3. Consider lines passing through M perpendicular to two sides of ABC triangle.
    // 4. Obtain the envelop of the lines above.
    ring R=(0,x,y),(x1,y1,x2,y2),lp;
    ideal C=(x1)^2+(y1)^2-1,
    x2+y2-1,
    x2-y2-x1+y1;
    matrix M[3][3]=x,y,1,x2,y2,1,x1,0,1;
    poly F=det(M);
    short=0;
    // Curves Family F=
    F;
    ==> -x1*y2+(y)*x1+(-y)*x2+(x)*y2
    // Conditions C=
    C;
    ==> C[1]=x1^2+y1^2-1
    ==> C[2]=x2+y2-1
    ==> C[3]=-x1+y1+x2-y2
    locusto(envelop(F,C));
    ==> [[[(x^4+2*x^2*y^2+10*x^2*y-x^2+y^4-6*y^3+12*y^2-8*y)],[[1]]],[Normal],1]]\
       ,[[(x+y-1)],[[1]]],[[Special],[y2,x2-1,y1,x1-1],[0]],1]]]
    locusto(envelopdg(envelop(F,C)));
    ==> [[[(x^4+2*x^2*y^2+10*x^2*y-x^2+y^4-6*y^3+12*y^2-8*y)],[[1]]],[Relevant],1\
       ]]]

User manual for Singular version 4-0-3, 2016, generated by texi2html.