Matlab - ¿Cómo trazar una línea horizontal y vertical con el mouse?

 
Vista:
sin imagen de perfil
Val: 8
Ha disminuido 1 puesto en Matlab (en relación al último mes)
Gráfica de Matlab

¿Cómo trazar una línea horizontal y vertical con el mouse?

Publicado por Bryan Arley (4 intervenciones) el 14/04/2018 17:22:31
Hola, muy buenas a todos, les pido por favor que me ayuden con un problema que tengo, es que no sé cómo trazar una línea con el mouse en matlab, pero esta línea solo debe ir horizontal o verticalmente, no puede ir diagonal, y si el usuario intenta trazar una línea diagonal, que la trace horizontal o verticalmente para llegar hasta el punto que el usuario indicó, se tiene que poder trazar la línea en cualquier parte del plot o figure, o en lo que se pueda hacer, muchas muchas gracias por su ayuda.
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 Lindsey
Val: 419
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

¿Cómo trazar una línea horizontal y vertical con el mouse?

Publicado por Lindsey (119 intervenciones) el 16/04/2018 02:09:09
Se me ocurrió algo como esto pero no sé si te sirva.

1
2
3
4
5
6
7
8
9
10
11
12
close all, clear all,clc
fh = @tanh;
fplot(fh,[-2,2])
[x,y]=ginput(2);
 
if abs(x(1)-x(2)) > abs(y(1)-y(2))
    y(1) = y(2);
    line(x,y)
else
    x(1) = x(2);
    line(x,y)
end

La función es solo para tener una gráfica en la cual dibular la línea. Con ginput se graban las coordenadas de dos clics que hagas dentro de la figura. Y lo demás ya es configuración para dibujar la línea.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 8
Ha disminuido 1 puesto en Matlab (en relación al último mes)
Gráfica de Matlab

¿Cómo trazar una línea horizontal y vertical con el mouse?

Publicado por Bryan Arley (4 intervenciones) el 16/04/2018 04:40:11
y si yo quiero hacer varias líneas a la vez, una seguida de otra, y que cuando yo no quiera hacer mas lineas le unda el click derecho, y después volver a trazar otras líneas de seguido, estando en el plano donde ya había trazado, ¿como lo hago?

mira, yo aquí tengo para hacer lo que te estoy pidiendo, pero no se como colocarlas que vayan solo horizontales y verticales y que cuando yo quiera parar y volver a comenzar a colocar otra lineas en otros lugares pueda.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
clear all
close all
clc
 
figure(1)
 
disp('clic izquierdo del mouse para tomar puntos')
disp('clic derecho del mouse para terminar')
 
axis([-5 5 -5 5])
 
hold on
[x1,y1]=ginput(1);
plot(x1,y1,'b*')
% text(x1+0.1,y1,'1')
boton=1;
i=2;
 
while boton==1;
[x2,y2,boton]=ginput(1);
plot([x1 x2],[y1 y2],'b-*')
% text(x2+0.1,y2,num2str(i))
x1=x2;
y1=y2;
i=i+1;
end
 
hold off

sería de gran ayuda, ¡¡¡MUCHAS GRACIAS!!!
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
Imágen de perfil de Lindsey
Val: 419
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

¿Cómo trazar una línea horizontal y vertical con el mouse?

Publicado por Lindsey (119 intervenciones) el 16/04/2018 17:55:47
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
clear all
close all
clc
 
figure(1)
 
disp('clic izquierdo del mouse para tomar puntos')
disp('clic derecho del mouse para terminar')
 
axis([-5 5 -5 5])
hold on
[x1,y1]=ginput(1);
p1 = plot(x1,y1,'b*'); % Punto 1 hecho con el clic
 
% text(x1+0.1,y1,'1')
 
boton=1;
i=2;
while boton==1;
    [x2,y2,boton]=ginput(1);
    p2 = plot(x2,y2,'b*'); % Punto 2 hecho con el clic
    if abs(x1-x2) > abs(y1-y2)
        y2 = y1;
    else
        x2 = x1;
    end
    delete(p1,p2)
    plot([x1 x2],[y1 y2],'b-*')
    % text(x2+0.1,y2,num2str(i))
    x1=x2;
    y1=y2;
    p1 = plot(x1,y1,'b*');
    i=i+1;
end
 
hold off
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 8
Ha disminuido 1 puesto en Matlab (en relación al último mes)
Gráfica de Matlab

¿Cómo trazar una línea horizontal y vertical con el mouse?

Publicado por Bryan Arley (4 intervenciones) el 17/04/2018 14:48:23
Eso esta bien, pero, ¿si yo quiero volver a trazar una linea en esa misma gráfica?, es decir, ejecuto el programa, trazo las lineas que yo quiera de seguido, hasta que yo le presione el click derecho para terminar,¿cierto?, pero si yo quiero volver a trazar otra linea en un x,y diferente en ese mismo gráfico, no puedo, y quiero trazar cuantas veces quiera de esta forma, ¿cómo se podría hacer?

estaba pensando de que fuera de esta forma: que presione el click izquierdo para trazar una serie de lineas, y con el click izquierdo para terminarlo,(como esta hasta ahora), y que con el click derecho vuelva a trazar otra linea en la parte que yo desee hasta que yo le presione el otro click, y que eso se vuelva a repetir las veces que yo quiera.

¡¡¡MUCHÍSIMAS GRACIAS Y PERDONEN LAS MOLESTIAS!!!
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
sin imagen de perfil
Val: 8
Ha disminuido 1 puesto en Matlab (en relación al último mes)
Gráfica de Matlab

¿Cómo trazar una línea horizontal y vertical con el mouse?

Publicado por Bryan Arley (4 intervenciones) el 18/04/2018 22:08:10
Eso esta bien, pero, ¿si yo quiero volver a trazar una linea en esa misma gráfica?, es decir, ejecuto el programa, trazo las lineas que yo quiera de seguido, hasta que yo le presione el click derecho para terminar,¿cierto?, pero si yo quiero volver a trazar otra linea en un x,y diferente en ese mismo gráfico, no puedo, y quiero trazar cuantas veces quiera de esta forma, ¿cómo se podría hacer?

estaba pensando de que fuera de esta forma: que presione el click izquierdo para trazar una serie de lineas, y con el click izquierdo para terminarlo,(como esta hasta ahora), y que con el click derecho vuelva a trazar otra linea en la parte que yo desee hasta que yo le presione el otro click, y que eso se vuelva a repetir las veces que yo quiera.

¡¡¡MUCHÍSIMAS GRACIAS Y PERDONEN LAS MOLESTIAS!!!
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