سلام .من مجدد مزاحمتون شدم .برنامه رو به استادم نشون دادم و با یه تغییراتی تبدیل شد به این فرم :
حالا سوال اینه که اگر بازه رو به )400,600( تبدیل کنیم اون خط خیلی باریک میشه و هیچ شکستی توو فاصله ها وجود نداره یعنی به صورت یه خط راست دیده میشه .من میخوام توو این بازه هم همون زیکزاکی و شکست دیده بشه .خواهش میکنم اگر میتونید راهنماییم کنید .ممنونم
کد پیاچپی:
clear all
close all
clc
A=zeros(40,60);
number_of_beams=5;
A_size=size(A);
B=A;
for mm=1:number_of_beams
x=round(A_size(1)/2)
y=round(A_size(2)/2)
B(x,y)=1;
random_jahat_degree=randi(360)
random_jahat_radian=(random_jahat_degree/180)*pi
jahat_sin=sin(random_jahat_radian)
jahat_cos=cos(random_jahat_radian)
continue_while=1;
while(continue_while)
x=x+jahat_cos;
y=y+jahat_sin;
x_integer=round(x);
y_integer=round(y);
if(random_jahat_degree>=0 && random_jahat_degree<=90)
imagesc(B)
pause(0.01)
if(x_integer<=A_size(1) && y_integer<=A_size(2))
B(x_integer,y_integer)=1;
else
continue_while=0;
end
elseif(random_jahat_degree>=90 && random_jahat_degree<=180)
if(x_integer>=1 && y_integer<=A_size(2))
B(x_integer,y_integer)=1;
else
continue_while=0;
end
elseif(random_jahat_degree>=180 && random_jahat_degree<=270)
if(x_integer>=1 && y_integer>=1)
B(x_integer,y_integer)=1;
else
continue_while=0;
end
elseif(random_jahat_degree>=270 && random_jahat_degree<=360)
if(x_integer<=A_size(1) && y_integer>=1)
B(x_integer,y_integer)=1;
else
continue_while=0;
end
end
end
end
imagesc(B)
random_jahat_degree
حالا سوال اینه که اگر بازه رو به )400,600( تبدیل کنیم اون خط خیلی باریک میشه و هیچ شکستی توو فاصله ها وجود نداره یعنی به صورت یه خط راست دیده میشه .من میخوام توو این بازه هم همون زیکزاکی و شکست دیده بشه .خواهش میکنم اگر میتونید راهنماییم کنید .ممنونم