2017-05-07 2 views
0

2つのMATLAB数値をpngとして保存しています。完全に重ね合わせるために同じサイズにします。重ね合わせることができる2つの図を保存するMatlab

最初の図は、2つの色で半分に分割された円である 'FilledCircle2'関数によって計算されます。 2番目の数字は、関数 'FilledCircle2'によって計算された円の左半分である関数 'FilledCircleL'によって計算されます。

私は同じサイズの2つの図形を持ちたいので、完全に重ねることができます。 誰かが私が間違っていることを理解するのに役立つことができますか?

[Output of function FilledCircle2(0,0,10,300, 'y', 'r')[1]

ここ
function []=HalfFilledCircleL(x0,y0,Radius,N, col1) 

if(N<=1) 
    error('N must be greater than 1'); 
end 

hold on 
axis equal 
% axis tight 
axis off 
hold on 

t=(0:N)*(-pi)/N; %t=-pi:0.01:pi 
x=Radius*cos(t)+x0; 
y=Radius*sin(t)+y0; 


hold on 

c1=fill(x,y,col1); %filling the semi-circle 
set (c1, 'edgecolor','white') %setting the outline color of the semi-circle 
set(gcf,'color',[0.49019607843137 0.49019607843137 0.49019607843137])%figure properties, rgb(125/255,125/255,125/255) 
set(c1,'LineWidth',2.0) 
set(gcf,'PaperUnits','inches','PaperSize',[0.8666,0.8666],'PaperPosition',[0 0 0.8666,0.8666])%setting size (130/150, 130/150, 150pixels per inch being the default size of img), paper position is imporrtant as otherwise i will have extra border 
set(gca, 'Position', [0 0 1 1]); 
fig = gcf; 
fig.InvertHardcopy = 'off'; %saves the fig with the set background color 


% %rotates the plot 
az= 90; %azimuth, az, is the horizontal rotation about the z axis as measured in degrees from the negative y-axis. Positive values indicate counterclockwise rotation 
el= 90; % vertical elevation of the view point in degrees 
view(az,el); 

end 

である:ここ

function []=FilledCircle2(x0,y0,Radius,N, col1, col2) 
if(N<=1) 
    error('N must be greater than 1'); 
end 
hold on 
axis equal 
axis off 
hold on 

t=(0:N)*2*pi/N; %t=-pi:0.01:pi 
x=Radius*cos(t)+x0; 
y=Radius*sin(t)+y0; 
plot(x,y) 
hold on 

%Divide circle in to 2 equal parts 
n=2; 
thetas = linspace(-pi, pi,n+1); %linspace generates n points. The space between the points is [(pi/2)-(-pi/2)]/(n) 

% Specify any colors wanted 
colors = [col1; col2]; 

for k = 1:n 
    tt = linspace(thetas(k), thetas(k+1)); 
    xi = Radius * cos(tt) + x0; 
    yi = Radius * sin(tt) + y0; 
    c2= fill([xi(:); x0], [yi(:); y0], colors(k,:)); %Assign diffrent colors to each circle 'slice' 

    set (c2, 'edgecolor','white') 
    set(c2,'LineWidth',2.0) 

    set(gcf,'PaperUnits','inches','PaperSize',[0.8666,0.8666],'PaperPosition',[0 0 0.8666 0.8666])%setting size (130/150, 130/150, 150pixels per inch being the default size of img), paper position is imporrtant as otherwise i will have extra border 
    set(gca, 'Position', [0 0 1 1]); 
    set(gcf,'color',[0.49019607843137 0.49019607843137 0.49019607843137])%figure properties, rgb(125/255,125/255,125/255) 
    fig = gcf; 
    fig.InvertHardcopy = 'off'; %saves the fig with the set background color 

    %rotates the plot 
    az= 90; %azimuth, az, is the horizontal rotation about the z axis as measured in degrees from the negative y-axis. Positive values indicate counterclockwise rotation 
    el= 90; % vertical elevation of the view point in degrees 
    view(az,el); 
    hold on 
end 

機能FilledCircle2(0,0,10,300, 'y', 'r')の出力である:ここ

機能とそれぞれの出力の両方に、自分のコードであります機能の出力HalfFilledCircleL(0,0,10,300, 'r')

Output of function HalfFilledCircleL(0,0,10,300, 'r')

答えて

2

軸のxy限界を設定するのに使用xlimylim

figure; 
HalfFilledCircleL(0,0,10,300, 'r'); 
xlim([-12 12]);ylim([-12 12]); 
az= -90; %azimuth, az, is the horizontal rotation about the z axis as measured in degrees from the negative y-axis. Positive values indicate counterclockwise rotation 
el= 90; % vertical elevation of the view point in degrees 
view(az,el); 

figure; 
FilledCircle2(0,0,10,300, 'y', 'r'); 
xlim([-12 12]);ylim([-12 12]); 

enter image description here enter image description here

+0

はuser2999345 @ありがとうございます! – Mraquel

関連する問題