问题
我正在尝试在 Matlab 中制作一个二维图形,它由多个图像和一个带有绘图数据的图形组成(我最终也可以将其转换为图像)。对于这些图像和图形,我需要能够指定它们在我的笛卡尔坐标系中的位置。
对于我的具体情况,能够“告诉”Matlab 图像的左下角在哪里就足够了。
所以对于上面的例子。我需要一些“技巧”让“bird1.jpg”从位置开始(a,b)
,“bird2.jpg”在位置开始(c,d)
,我的情节(e,f)
在一个 Matlab 图中的位置。
问题的解决方案
感谢 chappjc,我能够找到解决问题的方法。这是我使用的代码,以便其他人将来也可以使用它。
figure_color = [.741 .717 .42];
axe_color = [1 1 1];
Screen.fig = figure('units','pixels',...
'name','Parallel projection',...
'menubar','none',...
'numbertitle','off',...
'position',[100 100 650 720],...
'color',figure_color,...
'busyaction','cancel',...
'renderer','opengl');
Screen.axes = axes('units','pix',...
'position',[420 460 200 200],... % (420,460) is the position of the first image
'ycolor',axe_color,...
'xcolor',axe_color,...
'color',axe_color,...
'xtick',[],'ytick',[],...
'xlim',[-.1 7.1],...
'ylim',[-.1 7.1],...
'visible','On');
Screen.img = imshow(phantom);
Screen.axes2 = axes('units','pix',...
'position',[0 0 200 200],... % (0,0) is the position of the second image
'ycolor',axe_color,...
'xcolor',axe_color,...
'color',axe_color,...
'xtick',[],'ytick',[],...
'xlim',[-.1 7.1],...
'ylim',[-.1 7.1],...
'visible','On');
Screen.img2 = imshow(phantom);
基本上我所做的就是首先创建一个(大)图形,然后在这个大图的某个位置创建第一把斧头,并使其成为默认斧头。在这把斧头中,我显示了我的第一张图像(使用幻像功能制作)。之后,我在另一个位置制作了一个新斧头,并再次使其成为默认斧头。完成此操作后,我也将图像放在那里(相同的图片,但如果需要,您也可以使用另一张图片)。正如 chappjc 所描述的,您还可以使用更干净的方法句柄。