本帖最后由 matlabwhite 于 2017-8-25 13:13 编辑
写了个程序模拟光线反射,但是为啥反射到第三次就没有继续反射了...有没有大神帮忙看一下问题出在哪里了?代码如下
function []=test()
body{1}=[275,250;300,400;300,250;275,250];
body{2}=[250,400;275,250;250,250;250,400];
%顺时针连起来的反射体边缘
range=[200,500;350,500;350,150;200,150;200,500];
%定义最大范围的边框
nbody=length(body); %反射体数目
lightsource=cell(1,5);
for ii=1:5
lightsource{ii}=[250,400,-45-3*ii+3];%光源位置和光线方向与x轴正方向夹角
end
nls=length(lightsource); %光源数目
num=6;%反射次数
lightline=countline(lightsource,body,range,num);%计算光线轨迹
figure(1);
clf;
plot(range(:,1),range(:,2),'k','linewidth',2);%画最外面方框
hold on;
for ii=1:nbody
fill(body{ii}(:,1),body{ii}(:,2),'k','edgecolor','k');%填充反射体
end