Matlab - Dibujar un arco en matlab en la dirección deseada

 
Vista:
sin imagen de perfil
Val: 2
Ha aumentado su posición en 38 puestos en Matlab (en relación al último mes)
Gráfica de Matlab

Dibujar un arco en matlab en la dirección deseada

Publicado por Erik (1 intervención) el 10/11/2020 12:42:10
Hola,
Me gustaría poder dibujar un arco en el sentido (horario o antihorario) deseado. El código que utilizo para crear un arco entre dos ángulos es éste
1
2
3
4
5
6
7
8
9
10
11
12
13
hold on
grid
axis equal
angini=30;				%initial angle of the arc in degrees
angfin=70;				%final angle of the arc in degrees
rangini=deg2rad(angini);		%initial angle of the arc in radians
rangfin=deg2rad(angfin);		%final angle of the arc in radians
centre=[0;0];				%centre of the arc
radius=10;				%radius of the arc
teta = linspace(rangini,rangfin);
xco = centre(1)+radius*cos(teta); 	%x coordinates
yco = centre(2)+radius*sin(teta);      	% y coordinates
plot(xco,yco,'g')			%plot the arc

El resultado es la imagen que adjunto al mensaje

Como veis, MATLAB me dibuja un arco desde el ángulo 35º hasta el ángulo 70º en sentido antihorario. Pero me gustaría poder dibujarlo en sentido horario. He puesto 35º y 70º por poner, en definitiva me gustaría poder decidir en qué sentido dibujar los arcos, sean cual fueren los ángulos de inicio y fin de éstos.
Muchas gracias.

udda
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 Jon
Val: 354
Ha aumentado 1 puesto en Matlab (en relación al último mes)
Gráfica de Matlab

Dibujar un arco en matlab en la dirección deseada

Publicado por Jon (161 intervenciones) el 11/11/2020 08:18:49
Buenas Erik,

Para obtener un arco cóncavo (sentido horario), simplemente tienes que añadir un minus a las coordenadas x e y.

Eso sí, ahora la escala será negativa y tendrás que compensarlo con un offset.

1
2
3
4
5
6
7
8
9
10
11
12
13
hold on
grid
axis equal
angini=30;				%initial angle of the arc in degrees
angfin=70;				%final angle of the arc in degrees
rangini=deg2rad(angini);		%initial angle of the arc in radians
rangfin=deg2rad(angfin);		%final angle of the arc in radians
centre=[0;0];				%centre of the arc
radius=10;				%radius of the arc
teta = linspace(rangini,rangfin);
xco = centre(1)-radius*cos(teta); 	%x coordinates
yco = centre(2)-radius*sin(teta);      	% y coordinates
plot(xco,yco,'g')			%plot the arc

Espero que te haya servido como ayuda.

Un saludo,

Jon
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