Vous semblez avoir beaucoup de mal à comprendre cela. Voici l'image que je suppose que vous voulez générer:
D'abord, j'ai commencé avec les fonctions heart
et I_Heart_Math
que j'écrit dans my answer to your other question (qui utilisent arrow.m et myaa.m de The MathWorks File Exchange). J'ai enlevé tout le code en I_Heart_Math
qui était lié à tracer le mot "Math" et réduit la taille de la fenêtre de la figure.
Ensuite, j'ai dû générer et tracer le logo de la membrane en forme de L de MATLAB. Dans MATLAB vous pouvez taper logo
et il va ouvrir une nouvelle figure avec le logo affiché sur un fond noir. Vous pouvez regarder le code qui génère la figure en tapant type logo
dans MATLAB, ou vous pouvez regarder this MathWorks demo page. Le code logo
a nécessité quelques modifications. Comme je voulais ajouter le logo à une fenêtre de chiffres déjà existante, j'ai supprimé le code qui créait une nouvelle fenêtre de chiffres. J'ai également modifié quelques propriétés pour les axes de logo: le 'Parent' property a été défini sur la fenêtre de chiffre en cours (GCF), le 'Units' property a été défini sur "pixels" et le 'Position' property a été modifié pour positionner les axes de logo à côté des axes de coeur dans la fenêtre de la figure.
Mettre le tout ensemble, voici le nouveau code I_Heart_MATLAB
pour générer l'image ci-dessus:
function I_Heart_MATLAB
% Initialize heart plot and adjust figure and axes settings:
heart;
set(gcf,'Position',[200 200 640 300],'Name','Original image');
offset = get(gca,'CameraPosition')-get(gca,'CameraTarget');
offset = 35.*offset./norm(offset);
set(gca,'Position',[65 -9 300 300],'CameraViewAngle',6,...
'XLim',[21+offset(1) 70],'YLim',[16+offset(2) 63],...
'ZLim',[32 81+offset(3)]);
% Create the axes and labels, offsetting them in front of the
% heart to give the appearance they are passing through it:
arrowStarts = [81 51 51; 51 86 51; 51 51 32]+repmat(offset,3,1);
arrowEnds = [21 51 51; 51 16 51; 51 51 81]+repmat(offset,3,1);
arrow(arrowStarts,arrowEnds,5,40,40);
text('Position',[22 52 48]+offset,'String','x','FontSize',12);
text('Position',[50 17 49]+offset,'String','y','FontSize',12);
text('Position',[46.5 51 81.5]+offset,'String','z','FontSize',12);
% Create the equation text:
text('Position',[51 47 28],'FontName','Bookman','FontSize',8,...
'HorizontalAlignment','center',...
'String',{'(x^2+^9/_4y^2+z^2-1)^3-x^2z^3-^9/_{80}y^2z^3=0'; ...
'-3 \leq x,y,z \leq 3'});
% Create the large-type text:
hI = text('Position',[4 52 69.5],'String','I',...
'FontAngle','italic','FontName','Trebuchet MS',...
'FontSize',116,'FontWeight','bold');
% Create and plot the L-shaped membrane logo:
logoData = 40*membrane(1,25);
logoAxes = axes('Parent',gcf,'Units','pixels',...
'Position',[335 21 280 280],...
'CameraPosition', [-193.4013 -265.1546 220.4819],...
'CameraTarget',[26 26 10],'CameraUpVector',[0 0 1],...
'CameraViewAngle',9.5,'DataAspectRatio',[1 1 .9],...
'XLim',[1 51],'YLim',[1 51],'ZLim',[-13 40],...
'Visible','off');
surface(logoData,'Parent',logoAxes,'EdgeColor','none',...
'FaceColor',[0.9 0.2 0.2],'FaceLighting','phong',...
'AmbientStrength',0.3,'DiffuseStrength',0.6,...
'Clipping','off','BackFaceLighting','lit',...
'SpecularStrength',1.1,'SpecularColorReflectance',1,...
'SpecularExponent',7);
light('Parent',logoAxes,'Position',[40 100 20],'Color',[0 0.8 0.8],...
'Style','local');
light('Parent',logoAxes,'Position',[.5 -1 .4],'Color',[0.8 0.8 0]);
% Create an anti-aliased version of the figure too (the larger
% fonts need some adjustment to do this... not sure why):
set(hI,'FontSize',86);
myaa;
set(hI,'FontSize',116);
set(gcf,'Name','Anti-aliased image');
end
@izzat: Je suis réticent à vous aider plus car il est probable que vous allez juste supprimer cette question après avoir reçu votre réponse, comme vous l'avez déjà fait. Le but de Stack Overflow n'est pas seulement de répondre * à * vos questions, mais aussi de créer un référentiel d'aide à la programmation pour * autres * à utiliser. Pourquoi devrais-je faire des efforts importants pour afficher une réponse si vous êtes égoïste et ne laissez personne d'autre le lire? – gnovice
je commande pour mettre la 'position' je dois 'voir' où mettre le chiffre désiré que je veux mettre. comment je peux voir'? – izzat
je ne serai pas égoïste – izzat