reflectSurface = function(x, xline, fx, fxline, fpxline){ slope = fpxline parab = fx parabline = fxline intercept = parabline-slope*xline #reflections mp = tan(2*atan(slope)-pi/2) bp = parabline-mp*xline plot(xline, parabline, t="p", lwd=2) plot(x, parab, t="l", lwd=1) for(xi in 1:length(xline)){ #vertical rays abline(v=xline[xi]) #tangents #abline(a=intercept[xi], b=slope[xi]) #reflections abline(a=bp[xi], b=mp[xi]) #points(xline[xi], parabline[xi], pch=23) points(0, bp[xi], pch=23) } #make a histogram of where the light beams will cross the y axis bps = bp bps[bps