Angulos y distancias

Distancia entre dos puntos

d= ( x 2 x 1 ) 2 + ( y 2 y 1 ) 2 + ( z 2 z 1 ) 2

Calcular la distancia entre los puntos A (1,2,3) y B (4,-1,3)

La distancia entre dos puntos es el módulo del vector diferencia de los vectores u-v

>> u=[1,2,3];
>> v=[4,-1,3];
>> norm(u-v)
ans =    4.2426

Vector normal a un plano

Primero calculamos la ecuación del plano que pasa por un punto A y es perpendicular a un vector n tal como se muestra en la figura. El vector u va del punto A(x0,y0,z0) al punto P(x,y,z)

El producto escalar de los vectores n y u deberá ser cero.

u=(x-x0)i+(y-y0)j+(z-z0)k

n=ai+bj+ck

u·n=a(x-x0)+b(y-y0)+c(z-z0)=0

ax+by+cz=d

que es la ecuación del plano. Las componentes del vector n normal al plano son los coeficientes a, b, c de x, y y z en la ecuación del plano. El vector unitario normal al plano es

n ^ = a a 2 + b 2 + c 2 i ^ + b a 2 + b 2 + c 2 j ^ + c a 2 + b 2 + c 2 k ^

Queremos trazar el plano local, tangente a la superficie esférica de radio r en un punto de coordenadas φ (longitud) y θ (la latitud es λ=π/2-θ)

Las coordenadas del punto P son

{ x 0 =rsinθcosφ y 0 =rsinθsinφ z 0 =rcosθ

La dirección del vector n perpendicular al plano tangente a la superficie esférica es radial, la recta que pasa por O y P

n= x 0 i ^ + y 0 j ^ + z 0 k ^

Para determinar la ecuación del plano multiplicamos escalarmente n·u

u=(x x 0 ) i ^ +(y y 0 ) j ^ +(z z 0 ) k ^ n·u=(x x 0 ) x 0 +(y y 0 ) y 0 +(z z 0 ) z 0 =0 x x 0 +y y 0 +z z 0 = r 2

%esfera
R=1;
phi=linspace(0,pi,30);
theta=linspace(0,2*pi,40);
[phi,theta]=meshgrid(phi,theta);
x=R*sin(phi).*cos(theta);
y=R*sin(phi).*sin(theta);
z=R*cos(phi);
h1=mesh(x,y,z);
set(h1,'EdgeColor',[0.6,0.6,0.6]);
axis equal

%paralelo
theta=pi/3;
phi=0:0.1:2*pi;
x=sin(theta)*cos(phi);
y=sin(theta)*sin(phi);
z=cos(theta)*ones(1,length(x));
h1=line(x,y,z);
set(h1,'Color',[.7,0,0],'LineWidth',1.5)
%meridiano
phi=0;
theta=-pi:0.1:pi;
x=sin(theta)*cos(phi);
y=sin(theta)*sin(phi);
z=cos(theta);
h1=line(x,y,z);
set(h1,'Color',[.7,0,0],'LineWidth',1.5)

%plano tangente
phi=0;
theta=pi/3;
x0=sin(theta)*cos(phi);
y0=sin(theta)*sin(phi);
z0=cos(theta);
[x,y]=meshgrid(-0.2+x0:0.05:0.2+x0,-0.2+y0:0.05:0.2+y0);
z=(1-x*x0-y*y0)/z0;
hold on
h1=mesh(x,y,z);
set(h1,'EdgeColor',[0,0,0.8])
%normal al plano (dirección radial)
h1=quiver3(x0,y0,z0,0.5,0.5,0.5);
set(h1,'Color',[.7,0,0],'LineWidth',1.5)

axis equal
view(60,10)
hold off
xlabel('x'); ylabel('y'); zlabel('z')
title('Plano local')

Angulo entre dos planos

El producto escalar nos permite determinar el ángulo entre dos vectores u y v.

u·v=u·v·cosθ u·v= u x v x + u y v y + u z v z cosθ= u·v u·v

Si n1 y n2 son los vectores perpendiculares a cada uno de los dos planos, el ángulo θ entre estos dos vectores es el mismo que el ángulo entre los dos planos. El ángulo entre los dos planos se calcula mediante la siguiente fórmula

a 1 x+ b 1 y+ c 1 z= d 1 n 1 = a 1 i ^ + b 1 j ^ + c 1 k ^ a 2 x+ b 2 y+ c 2 z= d 2 n 2 = a 2 i ^ + b 2 j ^ + c 2 k ^ cosθ=| n 1 · n 2 n 1 · n 2 |

Calcular el ángulo determinado por los planos: x+2y-z=0, x-y+z=3.

>> n1=[1,2,-1];
>> n2=[1,-1,1];
>> coseno=abs(dot(n1,n2)/(norm(n1)*norm(n2)));
>> ang=acosd(coseno)
ang =   61.8745

Angulo entre una recta y un plano

Sea n un vector perpendicular al plano y sea u un vector cuya dirección es la recta. El ángulo entre el plano y la recta es el complementario al ángulo entre los vectores n y u.

ax+by+cz=dn=a i ^ +b j ^ +c k ^ { x= x 0 +t u x y= y 0 +t u y z= z 0 +t u z cos( π 2 θ )=| n·u n·u |

Calcular el ángulo entre le plano x+y+z=0, y la recta: x=1+t, y=1+2t, z=1+4t.

>> n=[1,1,1];
>> u=[1,2,4];
>> coseno=abs(dot(n,u)/(norm(n)*norm(u)))
coseno =    0.8819
>> ang=90-acosd(coseno)
ang =   61.8745

Calculamos la intersección entre el plano y la recta, de ecuaciones

x+y+z=0 { 2xy=1 4xz=3

En la figura, vemos el plano, la recta en color rojo, el vector perpendicular al plano en color azul y el punto de intersección de coordendas x=0.5714, y=0.1429, z=-0.7143.

%plano
[x,y] = meshgrid(-1:0.1:1);
z = -x-y;
hold on
mesh(x,y,z)
%recta
x=[0.5,1];
y=2*x-1;
z=4*x-3;
line(x,y,z,'color','r')
%punto de intersección
B=[1,1,1;2,-1,0;4,0,-1];
b=[0;1;3];
X=B\b
plot3(X(1),X(2),X(3),'bo','markersize',4,'markerfacecolor','b');

quiver3(X(1),X(2),X(3),1,1,1) %vector normal al plano
xlabel('x')
ylabel('y')
zlabel('z')
title('Recta que corta a un plano')
grid on
hold off
view(120,30)

Distancia de un punto a un plano

Distancia de un plano al origen

Queremos calcular la distancia h del origen O al plano de ecuación ax+by+cz=d. Tomemos un punto P (x,y,z) del plano,

La distancia h del origen al plano (segmento en color rojo) es la proyección del vector u=xi+yj+zk a lo largo de la dirección del vector unitario n normal al plano, tal como apreciamos en la figura

h= n ^ ·u= a a 2 + b 2 + c 2 x+ b a 2 + b 2 + c 2 y+ c a 2 + b 2 + c 2 z= d a 2 + b 2 + c 2

Distancia de un punto a un plano

La distancia h del punto A (x1,y1,z1) al plano de ecuación ax+by+cz=d (segmento en color rojo), es la diferencia entre la proyección del vector u a lo largo de la dirección n, (segmento OQ) y la distancia del origen a dicho plano, (segmento OM). h=|OQ|-|OM|

h= n ^ ·ud= a a 2 + b 2 + c 2 x 1 + b a 2 + b 2 + c 2 y 1 + c a 2 + b 2 + c 2 z 1 d a 2 + b 2 + c 2 = a x 1 +b y 1 +c z 1 d a 2 + b 2 + c 2

Calcular la distancia h del punto A (1,3,-2) al plano x-y+z=1

>> n=[1,-1,1];
>> u=[1,3,-2];
>> d=1;
>> h=abs((dot(n,u)-d)/norm(n))
h =    2.8868

Utilizando variables simbólicas

>> n=sym('[1,-1,1]');
>> u=sym('[1,3,-2]');
>> d=sym('1');
>> h=abs((dot(n,u)-d)/sqrt(dot(n,n)))
h =(5*3^(1/2))/3 

El módulo de un vector que se calcula con la función norm no funciona con variables simbólicas, se utiliza la operación equivalente: la raíz cuadrada sqrt del producto escalar dot de un vector consigo mismo.

Distancia de un punto a una recta

Queremos calcular la distancia h desde el punto A (x1,y1,z1) a la recta. Sea u un vector cuya dirección es la la recta y v el vector con origen en un punto P (x0,y0,z0) de la recta y extremo en el punto A.

v=(x1-x0)i+(y1-y0)j+(z1-z0)k.

h=v·sinθ= | u×v | u

Calcular la distancia entre el punto A (1,2,3) y la recta

{ x=1+2t y=1+3t z=4+5t

El vector u=2i+3j+5k

El vector v=(1-1)i+(2-1)j+(3-4)k=j-k

>> u=[2,3,5];
>> v=[0,1,-1];
>> h=norm(cross(u,v))/norm(u)
h =    1.3765

Utilizando variables simbólicas

>> u=sym('[2,3,5]');
>> v=sym('[0,1,-1]');
>> u_v=cross(u,v);
>> h=sqrt(dot(u_v,u_v)/dot(u,u)) 
h =(6*19^(1/2))/19

Distancia entre dos rectas que se cruzan

En la figura se muestra cómo se calcula un área a partir del módulo del producto vectorial de los vectores u y v.

área=u·d=u·v·sinθ=|u×v|

El volumen de un paralepípedo formado por tres vectores u,v y w, es igual al área de la base |u×v| por la altura h=w·cosθ. El módulo del producto mixto (u×vw.

Si r1 y r2 son dos rectas que se cruzan. Denominamos w al vector de origen P (x1,y1,z1) en la recta r1 y extremo Q (x2,y2,z2) en la recta r2. El volumen del paralepípedo formado por los vectores u,v y w es el módulo del producto mixto (u×vw. Por otra parte, el volumen del paralepípedo es igual al producto del área de la base |u×v| por la altura h que es la distancia entre las dos rectas que se cruzan.

Calcular la distancia h entre las rectas que se cruzan

r 1 { x=1+2t y=2+3t z=1+2t r 2 { x=2+t y=2+2t z=2+3t

Comprobamos que se cruzan

r 1 { 3x2y=1 xz=0 r 2 { 2xy=2 3xz=4

>> A=[3,-2,0;1,0,-1;2,-1,0;3,0,-1];
>> b=[-1;0;2;4];
>> Ab=[A b];
>> rank(A)
ans =     3
>> rank(Ab)
ans =     4

Definimos los vectores u,v y w.

u=2i+3j+2k, de la recta r1

v=i+2j+3k, de la recta r2

El punto P de la recta r1 es (1,2,1). El punto Q de la recta r2 es (2,2,2). El vector w de origen P y extremo Q es

w=i+k,

h= | ( u×v )·w | | u×v |

>> u=[2,3,2];
>> v=[1,2,3];
>> w=[1,0,1];
>> h=abs(dot(w,cross(u,v)))/norm(cross(u,v))
h =    0.9258

Utilizando variables simbólicas

>> u=sym('[2,3,2]');
>> v=sym('[1,2,3]');
>> w=sym('[1,0,1]');
>> u_v=cross(u,v);
>> h=abs(dot(w,u_v))/sqrt(dot(u_v,u_v))
h =42^(1/2)/7

Referencias

Joaquín Arregui Fernández, Javier Lafuente López, Isabel Morales González, Francisco Padilla Garvi. Matemáticas. Curso de Orientación Universitaria. Editorial Magisterio Español S.A. (1978)