Matlab - PROPIEDAD CHILDREN EN GUIDES

 
Vista:

PROPIEDAD CHILDREN EN GUIDES

Publicado por maria (4 intervenciones) el 10/12/2004 11:03:22
Tengo un problema en un axes de las guides tengo que dibujar un mallado y luego dentro de cada poligono un numero.Como puedo luego acceder al id para poder borrar los numeros y no los poligonos?????
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 Alejandro

Acceder a identificadores en GUIDE para borrar elementos

Publicado por Alejandro (145 intervenciones) el 06/10/2023 16:43:05
María, para acceder a identificadores específicos en GUIDE y poder borrar elementos específicos dentro de un `axes`, puedes asignar identificadores a los objetos que creas. Aquí tienes un ejemplo de cómo hacerlo:

1. Asignar identificadores:
- Cuando dibujas tus polígonos y números en GUIDE, asegúrate de asignar identificadores a los objetos relevantes. Puedes hacerlo directamente desde la interfaz gráfica de GUIDE o mediante código.

1
2
3
4
% Código para asignar identificadores a polígonos y números
axes(handles.axes1);  % Reemplaza 'axes1' con el nombre de tu axes
polygon1 = fill([x1, x2, x3], [y1, y2, y3], 'r', 'Tag', 'Polygon1');
text(x_centroid, y_centroid, '1', 'Tag', 'Number1');

2. Acceder y borrar por identificador:
- Luego, puedes acceder a los objetos por sus identificadores y borrarlos según sea necesario.

1
2
3
4
5
6
7
% Código para borrar polígono y número por identificador
axes(handles.axes1);  % Reemplaza 'axes1' con el nombre de tu axes
polygonToDelete = findobj('Tag', 'Polygon1');
numberToDelete = findobj('Tag', 'Number1');
 
delete(polygonToDelete);
delete(numberToDelete);

Asegúrate de utilizar los nombres y etiquetas correctos que hayas asignado a tus objetos. Puedes hacer esto tanto desde el código como desde GUIDE.

3. Manejar múltiples objetos:
- Si tienes varios polígonos y números, puedes generalizar el proceso utilizando bucles y estructuras de datos para manejarlos de manera más eficiente.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
axes(handles.axes1);  % Reemplaza 'axes1' con el nombre de tu axes
 
% Supongamos que tienes 5 polígonos y números
numPolygons = 5;
 
for i = 1:numPolygons
    polygonTag = ['Polygon' num2str(i)];
    numberTag = ['Number' num2str(i)];
 
    polygonToDelete = findobj('Tag', polygonTag);
    numberToDelete = findobj('Tag', numberTag);
 
    delete(polygonToDelete);
    delete(numberToDelete);
end

Este es un ejemplo general, y deberías adaptarlo según la estructura específica de tu código y cómo has asignado los identificadores en tu interfaz gráfica GUIDE. Espero que esto te ayude a abordar tu problema.
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