Hello all!

I wondered what would an idealroadbeam pattern look like. And I designed one (several actually)! (not the reflector of course!)

The ideal pattern should have constant head-on illuminance (lux) in the center "lane", and gradually decrease to sides, like shown schematically here:

Note the 4 parameters that determine the geometry:

dn1; dn2; df1; df2; (df=fixed=10m; all distances in meters; 1m~3feet)

Few simple algebraic equations (no calculus or integrals!), like from here(*), and here come the results. Proportional schematic diagram (to better understand beam geometry), and corresponding "wall shot". Isolines are all sqrt(2) from adjacent ones.

Very-very tight beam, with fast falloff (tunnel): dn1=0.5; dn2=0.1; df1=0.5; df2=0.1;

Wider, but also fast falloff: dn1=1; dn2=0.1; df1=1; df2=0.1;

Same wide, but smoother falloff (less tunnel): dn1=1; dn2=0.3; df1=1; df2=0.5;

Same falloff, but the area of const illum is wider: dn1=1; dn2=0.3; df1=2; df2=0.5;

Finally, same wide, and extra-slow falloff: dn1=1; dn2=0.3; df1=2; df2=1;

Now, you can "select" your ideal road illumination, and see its corresponding wall pattern. Later, when you see a wall shot on the internet or in real, you can immediately say if it's something close to your dream, or very different from it.

The octave script that does it (anybody can run!):

(*) Need to fix few mistakes there, like interpret E (lux is wrong) as I (cd is correct) in (3.116), or exchange e <-> h and -beta -> beta in (3.119), but the final plot, Bild 3.145 is correct.Code:h=1.05; ez=10; % won't be needed, but left as is b0=atan(h/ez); [as,bs]=meshgrid((-40:40)*pi/180, (-3:40)*pi/180); dn1=1; dn2=0.3; df=10; df1=2; df2=1; b=h*sqrt(1+1./(tan(b0+bs).^2)).*tan(as); e=h./tan(b0+bs); de=dn2+(df2-dn2)*e/df; db=dn1+(df1-dn1)*e/df; M=2.^(-(abs(b)-db)./de); % the fall-off multipler ind1=find(abs(b) < db); M(ind1)=1; % the central lane with const illuminance lint=7*M.*(1+tan(as).^2).*(1+1./(tan(b0+bs).^2))/(1+(ez/h)^2); % luminous intensity! % "7" is simply to match my colorbar % that's it! the rest is visualization decade=[1 1.5 2 3 5 7]; cl=[]; for ii=-3:1 cl=[cl (10^ii)*decade]; end col_lims_myW=[0.03 30]; pcolor(as*180/pi,bs*180/pi,log(lint)); shading('interp'); hold on; title('Luminous intensity'); xlabel('alpha, deg.') ylabel('beta, deg.') axis('ij'); zimax=max(max(lint)); isl=isolines_sqrt2(zimax,cl(1)); contour(as*180/pi,bs*180/pi,log(lint),log(isl),'k'); axis equal caxis(log(col_lims_myW)); colorbar('YTick',log(cl),'YTickLabel',cl); grid minor on ylim([-5,40]);