2017-04-14 1 views
3

J'ai utilisé imagesc dans MatLab pour tracer un champ acoustique. Je veux maintenant superposer un rectangle rempli semi-transparent à un certain endroit sur l'image. Idéalement, je voudrais pouvoir faire quelque chose comme ce qui suit:Superposition d'un rectangle semi-transparent sur un tracé créé avec imagesc?

imagesc(g,g,field); 
hold on 
plotRectangle([100,100,200,200], 'b', 0.5) 
hold off 

où b est la couleur du rectangle 0,5 est la transparence. Cela peut-il être fait?

Répondre

3

Vous pouvez utiliser rectangle pour créer un objet rectangle, puis utiliser une couleur spécifiée comme RGBA pour inclure la transparence

rectangle('Position', [100 100 200 200], 'FaceColor', [0 0 1 0.5]) 

Alternativement, vous pouvez simplement utiliser un objet patch

p = patch('vertices', [100, 100; 100, 200; 200, 200; 200 100], ... 
      'faces', [1, 2, 3, 4], ... 
      'FaceColor', 'b', ... 
      'FaceAlpha', 0.5) 
+0

Merci! J'ai oublié qu'il y avait une chaîne alpha :-P – patxiska