Matlab - MSc.

   
Vista:

MSc.

Publicado por elyase (1 intervención) el 16/07/2009 16:37:41
Hola a todos los amigos, tengo el siguiente problema, deseo anotar (con textarrow) un plot en 3D. Para ello usualmente se utiliza el comando "annotation" al cual se le pasa como parámetros el texto de la anotación , y obviamente los puntos de inicio y final de la flecha(en 2D, normalized units). Yo sé donde quiero poner mi flecha en el espacio de los datos en 3D(los cuales estoy ploteando) sin embargo no sé como transformar esto a 2D en la proyección de la figura, que son justamente las coordenadas que necesito para llamar la función annotation. Para mayor complejidad, mi figura 3D está rotada para que se vea en la perspectiva adecuada, esta perspectiva está dada por una matriz T(4x4) conocida de las que devuelve el comando view. Estuve mirando la función dsxy2figxy que resuelve un problema semejante para 2D, pero presiento que adaptar esto a 3D está más allá de mi capacidad mental. Alguien pudiera ayudarme?
Muchas gracias
Yaser
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
información
Otras secciones de LWP con contenido de Matlab
- Código fuente de Matlab
- Cursos de Matlab
- Temas de Matlab
- Chat de Matlab
información
Códigos de Matlab
- Fixed Pivot
- DÍAS DE LA SEMANA
- Fuerzas de Coulomb

RE:MSc.

Publicado por fismat (391 intervenciones) el 07/11/2009 15:04:57
Hola Elyase,

Te sugiero que leas la documentacion de Matlab sobre el comando "annotation"

>> help annotation

Aqui un ejemplo y link

http://www.mathworks.com/access/helpdesk/help/techdoc/ref/annotation.html


% Create a sphere and color it using a topographic colormap:
cla reset;
load topo;
[x y z] = sphere(45);
s = surface(x,y,z,'facecolor','texturemap','cdata',topo);
colormap(topomap1);
% Brighten the colormap for better annotation visibility:
brighten(.6)
% Create and arrange the camera and lighting for better visibility:
campos([2 13 10]);
camlight;
lighting gouraud;
axis off vis3d;
% Set the x- and y-coordinates of the textarrow object:
x = [0.7698 0.5851];
y = [0.3593 0.5492];
% Create the textarrow object:
txtar = annotation('textarrow',x,y,'string','We are here.','FontSize',14);

Saludos
Fismat
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

RE:MSc.

Publicado por elYase (2 intervenciones) el 17/02/2010 17:10:56
Hola FisMat, gracias por responder pero eso no resuelve mi problema. En la línea:

% Set the x- and y-coordinates of the textarrow object:
x = [0.7698 0.5851];
y = [0.3593 0.5492];

Ellos definen las coordenadas(2D) normalizadas del objeto textarrow. Mi pregunta es cómo lo hicieron? Supongamos que tengo un punto en 3D sobre la esfera y quiero que el extremo de la flecha apunte ahí. Como determino las coordenadas normalizadas(en 2D) que requiere el comando annotation?
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