Soru sorKullanıcıdan istenen x , y ve kenar uzunluğu ile kare çizdirip köşelerine kenar uzunluğunun yarısı kadar daire çizeceğim
must6776 tarafından 6 yıl önce soruldu

Yazdığım kodMerhaba , kullanıcıdan x apsisi ve y ordinatı , k=kenar uzunluğu isteyeceğim. Bu x ve y merkez olmak üzere kare çizdirip köşelerine k değerinin yarısı karar çember çizmem gerekiyor ancak yazdığım kod ile bir türlü çemberi köşeye , kareyi x,y merkezine alamadım

2 Cevap
Caglar Yönetici tarafından 6 yıl önce cevaplandı


fig=figure; ax=gca; hold(ax,'on');
x=10; y=20; k=8;
dikdortgen=rectangle(ax,'Position',[x-k/2 y-k/2 k k]); %Position: [sol_alt_x, sol_alt_y, genislik, yukseklik]; Merkezi x,y ise sol alt kose x-k/2'dir.
cember(4)=rectangle(ax,'Position',[x+k/2-k/4 y+k/2-k/4 k/2 k/2],'Curvature',[1 1]); %Curvature [1 1] ile cember oldugunu belirtiyoruz
cember(3)=rectangle(ax,'Position',[x+k/2-k/4 y-k/2-k/4 k/2 k/2],'Curvature',[1 1]); %Dikdortgenmis gibi sol alt kose ve genislik ile daire tanimlaniyor.
cember(2)=rectangle(ax,'Position',[x-k/2-k/4 y+k/2-k/4 k/2 k/2],'Curvature',[1 1]); %x-k/2 ve y+k/2 merkezli bir daire. 'sol alt kosesi' -k/4 yaparak bulunur,
%cunku capi k/2
cember(1)=rectangle(ax,'Position',[x-k/2-k/4 y-k/2-k/4 k/2 k/2],'Curvature',[1 1]);

Caglar Yönetici tarafından 6 yıl önce cevaplandı

fig=figure; ax=gca; hold(ax,'on');
x=10; y=20; k=8;
dikdortgen=rectangle(ax,'Position',[x-k/2 y-k/2 k k]);
%Position: [sol_alt_x, sol_alt_y, genislik, yukseklik]; Merkezi x,y ise sol alt kose x-k/2'dir.
cember(4)=rectangle(ax,'Position',[x+k/2-k/4 y+k/2-k/4 k/2 k/2],'Curvature',[1 1]);
%Curvature [1 1] ile cember oldugunu belirtiyoruz

cember(3)=rectangle(ax,'Position',[x+k/2-k/4 y-k/2-k/4 k/2 k/2],'Curvature',[1 1]);
%Dikdortgenmis gibi sol alt kose ve genislik ile daire tanimlaniyor.

cember(2)=rectangle(ax,'Position',[x-k/2-k/4 y+k/2-k/4 k/2 k/2],'Curvature',[1 1]);
%x-k/2 ve y+k/2 merkezli bir daire. 'sol alt kosesi' -k/4 yaparak bulunur,
%cunku capi k/2

cember(1)=rectangle(ax,'Position',[x-k/2-k/4 y-k/2-k/4 k/2 k/2],'Curvature',[1 1]);