2013-10-08 6 views
4

Envisagez le positionnement du texte sur un terrain 3D:Convert point de données 3D au point de chiffre normalisé (2D) dans Matlab

membrane 
xlabel('x'); ylabel('y'); zlabel('z'); 
view(3); 
grid on 
text(0,-1,.5,'Test','FontSize',20,'Units','data'); 

enter image description here

déplacer le texte légèrement dans la direction y

text(0,-0.7,.5,'Test','FontSize',20,'Units','data'); 

donne

enter image description here

comme vu, le texte est coupé (caché) par la surface. Est-il possible de convertir la dernière position (0, -0,7, 0,5) en une position 2D normalisée? (Le tracé de texte en coordonnées normalisées n'est pas affecté (caché) par la surface). On suppose la position normalisée est (x, y), alors je pourrais utiliser

text(x,y,'Test','FontSize',20,'Units','normalized'); 

pour tracer le texte sur le graphique 3D. Donc, ma question est: Comment convertir un point de données 3D en un point de figure normalisé 2D?

Répondre

0

On dirait que les travaux suivants:

h=text(0,-.7,.5,'Test','FontSize',20,'Units','data','visible','off'); 
set(h,'Units','normalized'); 
P=get(h,'Position'); 
x=P(1); y=P(2); 
delete(h); 
text(x,y,'Test','Color','r','FontSize',20,'Units','normalized'); 
Questions connexes