Merhabalar.
Matlab ile bir görüntü üzerinde rasgele sayıda konumda ve çapta daire çizmem gerekiyor ama bunu yapamadım ve ödev teslimini yarın yapmam gerekiyor ilk defa matlab kullanıyorum ama bir miktar kod yazabildim belki hatayı bulabilir yada doğru kodu cevap olarak yollayabilirsiniz. teşekkür ederim.
x=uint8(0*ones(1089)); imshow(x) randomMiktari = int32(10); iterator = int16(1); c =randi([1 100],1,randomMiktari); ilkyatay = int16(1); ilkdikey = int16(1); dikeksen = int16(0); yatayeksen= int16(0); for f=1:randomMiktari; dikeksen = int16(c(1:f)); %yatayeksen = int16(c(1:iterator)); yatayeksen=dikeksen; cap=dikeksen; for i=ilkdikey:(dikeksen(1,f)+ilkdikey); for j=ilkyatay:(yatayeksen(1,f)+ilkyatay); if(i-((dikeksen(1,f))/2))^2+(j-((yatayeksen(1,f))/2))^2<((cap(1,f))/2)^2 x(i,j)=255; end end end iterator=iterator+1; ilkyatay=ilkyatay+yatayeksen; ilkdikey=ilkdikey+dikeksen; imshow(x) end imshow(x)
1 Cevap
En iyi cevap
Merhaba, Asagidaki ornegimi inceleyebilirsiniz. Ancak rastgele sayi uretirken mutlaka bir sinir belirlemeniz gerekiyor. Ben asagidaki ornekte bu sayi araligini 1 ile 10 arasinde belirledim. Takildiginiz yeri tekrar sorabilirsiniz.
clear; clc;
for i =1: randi([1 10],1)
x = randi([1 10],1,1); % x koordinat
y = randi([1 10],1,1); % y koordinat
r = randi([1 10],1,1);% yaricap
% Daireyi cizelim
th = 0:pi/50:2*pi;
xunit = r * cos(th) + x;
yunit = r * sin(th) + y;
h = plot(xunit, yunit); hold on;
end