lunes, 1 de enero de 2018

Francisco Gallego Lupiañez (UCM-Universidad Complutense de Madrid)

Doctor en Matemáticas


Profesor titular de universidad (Associate professor)

Department of Geometry and Topology, Faculty of Mathematics, UCM (Spain)
http://www.mat.ucm.es/imi/People/Gallego_Lupianez_Francisco.htm

- Desde el punto a la cuarta dimensión


Egmont Coleurs





- El Topologicón


Jean-Pierre Petit





1 comentario:

  1. % Al final de El Topologicón hay un código en BASIC para dibujar una
    % proyección de los meridianos de la superficie de Boy. He hecho este
    % código en Matlab para dibujar la superficie.

    % Abro la figura
    figure(1)
    clf(1)
    axis equal
    axis off
    az = 120; el = -90;
    view(az,el)
    hold on
    light('Position',[1 -1 0],'Style','infinite');
    title('Superficie de Boy. Los meridianos se cortan en el polo Sur.')
    % Calculo las coordenadas de los puntos de la superficie de acuerdo con la
    % parametrización mostrada en la página 72 de El Topologicón e intentando
    % mantener la notación original.
    np = 129;
    nm = 65;
    theta = linspace(0,2*pi,np);
    mu = linspace(0,pi,nm);
    [THETA,MU]=meshgrid(theta,mu);
    ALPHA = pi/8*sin(3*MU);
    SA = sin(ALPHA); CA = cos(ALPHA);
    D = 10+1.41*sin(6*MU-pi/3);
    E = +1.98*sin(3*MU-pi/6);
    A = D+E ; B = D-E ;
    C2 = sqrt(A.^2+B.^2); C3 = 4*D.*E./C2;
    CM = cos(MU); SM = sin(MU);
    TC = A.*cos(THETA);
    TS = B.*sin(THETA);
    X1 = C3 + TC - TS;
    Z1 = C2 + TC + TS;
    % Y las 3 coordenadas
    X = X1.*CM - Z1.*SA.*SM;
    Y = X1.*SM + Z1.*SA.*CM;
    Z = Z1.*CA;
    % Ahora dibujamos la superficie
    h = surf(X,Y,Z);
    set(h,'FaceAlpha',0.5)
    set(h,'EdgeColor','none')
    set(h,'FaceColor',[0 .5 .8])
    set(h,'FaceLighting','phong')
    % Pintamos el polo sur, o polo norte ;) ¡que son la misma cosa!
    plot3(0,0,0,'.r','MarkerSize',30)
    % Y unos cuantos meridianos
    j = [1 17 33 49 ];
    plot3(X(j,:)',Y(j,:)',Z(j,:)')

    % Al final, hacemos una animación simplemente cambiando el punto de vista.
    for j = 1:180
    pause(0.1)
    view([az+2*j,el+j])
    end

    ResponderEliminar