Tényleg nem létezik?
  • sublimiter
    #1318
    Amig nem erted, addig veszelyes.
    Kicsit. xD

    compiler:g++


    A lenti megoldas nem egyezik a szakirodalomban talalhatoval, ugyhogy azt is ide teszem. Talan ez egyszerubb is.


    vektor au = a(u+z,v ,R)-a(u,v,R);
    vektor av = a(u ,v+z,R)-a(u,v,R);

    vektor au_du = a(u+z+du ,v ,R) - a(u+du ,v ,R);
    vektor au_dv = a(u+z ,v +dv,R) - a(u ,v+dv,R);
    vektor av_du = a(u +du ,v+z ,R) - a(u+du ,v ,R);
    vektor av_dv = a(u ,v+z+dv,R) - a(u ,v+dv,R);


    skalar E = skalar_szorzat(au,au);
    skalar F = skalar_szorzat(au,av);
    skalar G = skalar_szorzat(av,av);


    skalar Eu = skalar_szorzat((au_du-au)/du,au);
    skalar Ev = skalar_szorzat((au_dv-au)/dv,au);
    skalar Gu = skalar_szorzat((au_dv-au)/dv,av);

    skalar Fu = skalar_szorzat((au_du-au)/du,av);
    skalar Fv = skalar_szorzat((av_dv-av)/dv,au);
    skalar Gv = skalar_szorzat((av_dv-av)/dv,av);

    skalar g = 1/(E*G-F*F);
    // vektor normal = vektor_szorzat(au,av); skalar g=1/skalar_szorzat(normal,normal);


    skalar T0_00 = (Eu*G + Fu*F )*g;
    skalar T0_01 = (Ev*G + Gu*F )*g;
    skalar T0_10 = (Ev*G + Gu*F )*g;
    skalar T0_11 = (Fv*G + Gv*F )*g;

    skalar T1_00 = (Eu*F + Fu*E )*g;
    skalar T1_01 = (Ev*F + Gu*E )*g;
    skalar T1_10 = (Ev*F + Gu*E )*g;
    skalar T1_11 = (Fv*F + Gv*E )*g;


    skalar ddu= -T0_00*du*du - T0_01*du*dv - T0_10*dv*du - T0_11*dv*dv;
    skalar ddv= -T1_00*du*du - T1_01*du*dv - T1_10*dv*du - T1_11*dv*dv;


    u += du;
    v += dv;
    du += ddu;
    dv += ddv;

    http://www.math.uga.edu/~shifrin/ShifrinDiffGeo.pdf