Posición aparente de un objeto debajo del agua

Primero, vamos a resolver una situación más simple. Dado el ángulo de incidencia, determinaremos la posición aparente de un objeto vista por un nadador que se encuentra en la dirección del rayo refractado

El objeto está situado en el origen a una profundidad h. Del objeto parte un rayo (color rojo) que forma un ángulo de incidencia θi. El rayo refractado forma un ángulo θr con la normal. De acuerdo con la ley de la refracción

nsinθi=sinθr

siendo n=1.33 el índice de refracción del agua y 1 el índice de refracción del aire. El ángulo de refracción θr es mayor que el incidente θi.

La dirección del rayo refractado y su prolongación pasa por el punto (xs,h) y su pendiente es 1/tanθr. Sabiendo que xs=htanθi. La ecuación de esta recta es

yh= x x s tan θ r

Del objeto parte un rayo (color azul) que forma un ángulo de incidencia θ'i. El rayo refractado forma un ángulo θ'r con la normal.

La dirección del rayo refractado y su prolongación pasa por el punto (x's,h) y su pendiente es 1/tanθ'r. Sabiendo que x's=htanθ'i. La ecuación de esta recta es

yh= x x s ' tan θ r '

Las prolongaciones de los rayos refractados se cortan el en punto señalado en color azul de coordenadas

x a = tan θ i tan θ r ' tan θ r tan θ i ' tan θ r ' tan θ r h y a =( 1 tan θ i ' tan θ i tan θ r ' tan θ r )h

Esta es la posición (xa, ya) aparente del objeto visto por un observador que se encuentra en la dirección del rayo refractado. Donde θ'ii, siendo δ un incremento de ángulo pequeño.

Representamos la posición aparente (xa, ya) de un objeto situado en el origen, para varios ángulos de incidencia

La profundidad del objeto es h=1 m, el incremento de ángulo δ=0.01 grados. Las flechas indican la dirección del rayo refractado, la dirección de observación del objeto

n=1.33; %índice de refracción del agua
delta=0.01*pi/180; %0.01 grado
h=1; %profundidad
hold on
%piscina
x=[0,0,1.1,1.1];
y=[0,1,1,0];
fill(x,y,'c')
plot(0,0,'ro','markersize',4,'markeredgecolor','r','markerfacecolor','r')
for aIn=(0:5:45)*pi/180
    aRe=asin(n*sin(aIn)); %ángulo de refracción
    aRe_p=asin(n*sin(aIn+delta)); %ángulo de refracción
    xa=sin(aIn)^3*(n^2-1)*h/cos(aIn)^3;
    ya=(1-(1-n^2*sin(aIn)^2)^(3/2)*h/(n*cos(aIn)^3));
    plot(xa,ya,'ro','markersize',4,'markeredgecolor','r','markerfacecolor','r')
    xs=h*tan(aIn);
    line([0,xs],[0,h],'color','k')
    line([xs,xa],[h,ya],'lineStyle','--','color','k')
    quiver(xs,h,0.25*sin(aRe),0.25*cos(aRe));
end
hold off
xlim([0,1.1])
xlabel('x')
ylabel('y')
title('Refracción')

Se fija la posición del observador

En esta sección vamos a describir la posición aparente de los objetos sumergidos en una piscina respecto de un nadador situado en el borde

El eje Y coincide con la posición del nadador y el eje X con la superficie del agua. La posición de los ojos del nadador es (0,y0) y la posición del objeto sumergido (punto de color rojo) en el agua es (xb, yb), la posición aparente del objeto (punto de color azul) es (xa, ya)

Un rayo incidente procedente del objeto, se refracta en un punto de la superficie de separación de los dos medios situado a xs, formando un ángulo θi con la normal. El rayo refractado llega a los ojos del observador formando un ángulo θr con la normal.

Conocida la posición del objeto (xb, yb) y la de los ojos del nadador (0,y0), a partir de la ley de la refracción, nsinθi=sinθr, vamos a calcular la posición xs donde se refracta el rayo de luz procedente del objeto y los ángulo de incidencia θi y el refractado θr. En la figura vemos que

tan θ i = x b x s y b tan θ r = x s y 0

Eliminado xs y utilizando la ley de la refracción

x b y 0 tan θ r + y b sin θ i 1 sin 2 θ i =0 x b y 0 sin θ r 1 sin 2 θ r + y b sin θ r n 2 sin 2 θ r =0

Resolvemos esta ecuación transcendente, para calcular θr, después xs y θi

La ecuación de la dirección del rayo refractado y su prolongación es

y= x x s tan θ r x b x=ytan θ r y b tan θ i

Para determinar la posición aparente del objeto, precisamos trazar un rayo más de ángulo de refracción θ'r= θr, (siendo δ un ángulo muy pequeño, infinitesimal) y hallar la intersección de la prolongación de los dos rayos refractados, tal como se muestra exageradamente en la figura. Las ecuaciones de las rectas de color rojo y azul son, respectivamente

{ x b x=ytan θ r y b tan θ i x b x=ytan θ r ' y b tan θ i '

Despejamos la posición aparente xa e ya que es el punto de intersección de las dos rectas

{ x a = x b y b tan θ i ' tan θ r tan θ r ' tan θ i tan θ r ' tan θ r y a = y b tan θ i ' tan θ i tan θ r ' tan θ r

Calculamos la ordenada ya

tan θ i ' tan θ i tan θ r ' tan θ r = sin θ r ' n 2 sin 2 θ r ' sin θ r n 2 sin 2 θ r tan θ r ' tan θ r = sin( θ r +δ ) n 2 sin 2 ( θ r +δ ) sin θ r n 2 sin 2 θ r tan( θ r +δ )tan θ r

Hacemos la aproximación

f( θ r +δ )f( θ r )+ df d θ r δ tan( θ r +δ )tan θ r + δ cos 2 θ r sin( θ r +δ ) n 2 sin 2 ( θ r +δ ) sin θ r n 2 sin 2 θ r + n 2 cos θ r ( n 2 sin 2 θ r ) 3/2 δ

El resultado final es

y a = y b { sin θ r n 2 sin 2 θ r + n 2 cos θ r ( n 2 sin 2 θ r ) 3/2 δ } sin θ r n 2 sin 2 θ r { tan θ r + δ cos 2 θ r }tan θ r = y b n 2 cos 3 θ r ( n 2 sin 2 θ r ) 3/2

Calculamos la abscisa xa

tan θ i ' tan θ r tan θ r ' tan θ i tan θ r ' tan θ r = sin θ i ' 1 sin 2 θ i ' tan θ r tan θ r ' sin θ i 1 sin 2 θ i tan θ r ' tan θ r = sin θ r ' n 2 sin 2 θ r ' tan θ r tan θ r ' sin θ r n 2 sin 2 θ r tan θ r ' tan θ r = sin( θ r +δ ) n 2 sin 2 ( θ r +δ ) tan θ r tan( θ r +δ ) sin θ r n 2 sin 2 θ r tan( θ r +δ )tan θ r { sin θ r n 2 sin 2 θ r + n 2 cos θ r ( n 2 sin 2 θ r ) 3/2 δ }tan θ r { tan θ r + δ cos 2 θ r } sin θ r n 2 sin 2 θ r { tan θ r + δ cos 2 θ r }tan θ r

El resultado final es

x a = x b + y b ( n 2 1 ) sin 3 θ r ( n 2 sin 2 θ r ) 3/2

Cálculo de la posición aparente de un objeto sumergido

Sea y0=1.5 la altura de los ojos de nadador, la posición del objeto (xb, yb) es (5,-2)m

Resolvemos la ecuación transcendente para calcular el ángulo del rayo refractado θr y la posición xs en la superficie del agua donde se refracta el rayo incidente

x b y 0 sin θ r 1 sin 2 θ r + y b sin θ r n 2 sin 2 θ r =0

y posteriormente, las posición aparente (xa, ya) de un objeto situado en la posición (xb, yb)

{ x a = x b + y b ( n 2 1 ) sin 3 θ r ( n 2 sin 2 θ r ) 3/2 y a = y b n 2 cos 3 θ r ( n 2 sin 2 θ r ) 3/2

Trazamos el rayo incidente, el refractado y su prolongación hasta la posición aparente del objeto

n=1.33; %índice de refracción del agua
xb=5; %distancia al objeto
yb=-2; %profundidad
y0=1.5; %observador
f=@(x) xb-y0*x/sqrt(1-x^2)+yb*x/sqrt(n^2-x^2); % x es sin(th)
th_r=asin(fzero(f,[0,0.99]));
hold on
%piscina
x=[0,5,5,0];
y=[0,0,-2,-2];
hold on
fill(x,y,'c')
plot(xb,yb,'ro','markersize',6,'markeredgecolor','r','markerfacecolor','r')
plot(0,y0,'ko','markersize',4,'markeredgecolor','k','markerfacecolor','k')
xa=xb+yb*(n^2-1)*sin(th_r)^3/(n^2-sin(th_r)^2)^(3/2);
ya=yb*n^2*cos(th_r)^3/(n^2-sin(th_r)^2)^(3/2);
plot(xa,ya,'bo','markersize',4,'markeredgecolor','b','markerfacecolor','b')
xs=y0*tan(th_r);
line([xb,xs],[yb,0],'color','k')
line([0,xs],[y0,0],'color','k')
line([xs,xa],[0,ya],'lineStyle','--','color','k')
hold off
xlabel('x')
ylabel('y')
title('Refracción')

Elaboramos un script para dibujar la apariencia de un objeto de forma circular de radio 0.5 situado en el fondo de una piscina. La posición del centro del objeto es (5,-2) m y el observador está en el borde de la piscina a y0=1.5

n=1.33; %índice de refracción del agua
y0=1.5; %observador
%objeto
t=(1:360)*pi/180;
Xb=[0.5*cos(t),0]+5;
Yb=[0.5*sin(t),0]-2;
%piscina
x=[0,5.6,5.6,0];
y=[0,0,-2.6,-2.6];
hold on
fill(x,y,'c')
%observador
plot(0,y0,'ko','markersize',4,'markeredgecolor','k','markerfacecolor','k')
for i=1:length(Xb)
    xb=Xb(i);
    yb=Yb(i);
    f=@(x) xb-y0*x/sqrt(1-x^2)+yb*x/sqrt(n^2-x^2);
    th_r=asin(fzero(f,[0,0.99]));
    plot(xb,yb,'ro','markersize',2,'markeredgecolor','r','markerfacecolor','r')
    xa=xb+yb*(n^2-1)*sin(th_r)^3/(n^2-sin(th_r)^2)^(3/2);
    ya=yb*n^2*cos(th_r)^3/(n^2-sin(th_r)^2)^(3/2);
    plot(xa,ya,'bo','markersize',2,'markeredgecolor','b','markerfacecolor','b')
end
xs=y0*tan(th_r);
line([xb,xs],[yb,0],'color','k')
line([0,xs],[y0,0],'color','k')
line([xs,xa],[0,ya],'lineStyle','--','color','k')
hold off
xlabel('x')
ylabel('y')
title('Refracción')

Finalmente, dibujamos la forma aparente del fondo de una piscina vista por el nadador situado en el borde. La forma real está descrita por la función

y b ={ 0.9 0.5 x b 15.5 0 x b <15.5 1.6 x b +21.02 2.7 15.5 x b <18.2 318.2 x b 25

n=1.33; %índice de refracción del agua
y0=1.5; %observador
g=@(x) (-0.9-0.5*x/15.5).*(x<15.5)+(-1.6*x+21.02).*(x>=15.5 && x<18.2)/2.7
-3*(x>=18.2 && x<=25);
xb=0:0.1:25;
yb=zeros(1,length(xb));
xa=zeros(1,length(xb));
ya=zeros(1,length(xb));
for i=1:length(xb)
    yb(i)=g(xb(i));
end
%yb=fliplr(yb);
for i=1:length(xb)
    f=@(x) xb(i)-y0*x/sqrt(1-x^2)+yb(i)*x/sqrt(n^2-x^2);
    if sign(f(0))==sign(f(0.99))
        break;
    else
        th_r=asin(fzero(f,[0,0.99]));
    end
    xa(i)=xb(i)+yb(i)*(n^2-1)*sin(th_r)^3/(n^2-sin(th_r)^2)^(3/2);
    ya(i)=yb(i)*n^2*cos(th_r)^3/(n^2-sin(th_r)^2)^(3/2);
end
hold on
%observador
plot(0,y0,'ko','markersize',4,'markeredgecolor','k','markerfacecolor','k')
fill([25,0,xb],[0,0,yb],'c')
plot(xa(1:i-1),ya(1:i-1),'r')
hold off
xlabel('x')
ylabel('y')
title('Refracción')

Invertimos el perfil de la piscina, de modo que la parte más profunda esté más cerca del observador

Utilizamos la función fliplr de MATLAB para invertir el orden de los elementos del vector yb. Basta por tanto, añadir al script la sentencia

...
for i=1:length(xb)
    yb(i)=g(xb(i));
end
yb=fliplr(yb);
for i=1:length(xb)
...

El nadador no aprecia el fondo de la piscina a partir de cierta distancia xb de alrededor 6 m, para la cual ya se hace casi cero

Referencias

Kenneth S. Mendelson. Apparent shape of a swimming pool. Am. J. Phys. 78 (12). December 2010, pp.1254-1257

R Arizaga, N Cap, H Rabal, M Trivi. Image distortion due to refraction by planar surfaces. Eur. J. Phys. 31 (2010) pp. 115-127