Matlab - Rotar una línea en matlab

   
Vista:

Rotar una línea en matlab

Publicado por Alvaro (6 intervenciones) el 03/03/2016 10:44:02
Buenas amigos:

Quiero plotear una línea en matlab rotada un cierto ángulo en radianes.

Tengo los puntos iniciales y finales en las coordenadas x e y de los dos puntos que componen la línea.

Com puedo rotar esta línea por ejemplo 0.7 radianes?

Gracias por la ayuda, saludos
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Jorge De Los Santos

Rotar una línea en matlab

Publicado por Jorge De Los Santos (212 intervenciones) el 03/03/2016 18:15:15
Hola Alvaro.

La forma más sencilla y conveniente es utilizando matrices de transformación, puedes revisar el siguiente enlace en el cual se explican los conceptos elementales de las matrices de transformación utilizadas para rotaciones y/o traslaciones:

http://serdis.dis.ulpgc.es/~ii-fgc/Tema%203%20-%20Transformaciones%202D.pdf

Luego, para tu caso, habría que definir previamente respecto a qué punto vas a rotar tu línea y trasladar tus coordenadas a ese nuevo punto, si el origen (0,0) será el punto de rotación entonces no sería necesaria tal traslación. Una vez está definido el punto de rotación entonces procedes a aplicar la matriz de rotación correspondiente. En resumen, te dejo el siguiente código que más o menos implementa lo que te comento:

1
2
3
4
5
6
7
8
9
10
11
12
13
clear;clc;
hold on
pr = [0,0]; % Punto de rotación
x = [0,10]; % Coordenadas x de la línea
y = [0,10]; % Coordenadas y de la línea
P = [x;y];
T = repmat([pr(1);pr(2)],1,size(P,1)); % Matriz de traslación
PT = P + T; % Puntos trasladados
theta = 0.7; % Ángulo de rotación (radianes)
R = [cos(theta) -sin(theta); sin(theta) cos(theta)]; % Matriz de rotación
PR = R*PT; % Aplicando la matriz de rotación
plot(P(1,:),P(2,:)); % Graficar línea original
plot(PR(1,:),PR(2,:)); % Graficar línea rotada




Saludos, espero te sea útil.


Jorge De Los Santos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar