$stars=Image@ImageData
,DataReversedTrue;(*Plotter:GeneratesaPlotoftheareabetweentwolinesfunctions:twoexpressionsoftheforma+b*xdescribingtherighthandsideofdefinitionsoftheSymboly.Thatis,y=a+b*xisthelinespecifiedbyeachoftheFunctionsstartingValue:thesmallestvaluefortheSymbolxendingValue:thelargestvaluefortheSymbolxlinesQ:BooleanvaluespecifyingwhethertheLinesthemselvesshouldbedrawnshade:anOpacityvaluespecifyingthefillbetweenthetwolines;maybezerofornofills:SymbolindicatingtheindependentvariablebeingPlotted;defaultstox*)Plotter[functions_,startingValue_,endingValue_,linesQ_,shade_,s_Symbol:Symbol["x"]]:=Module[{plotStyle},plotStyle=If[linesQ,{Thickness@.002,Dashed,White},None];Plot[functions,{s,startingValue,endingValue},PlotStyle{plotStyle},Filling{1{{2},shade}},PrologRaster[Show[$stars][[1,1]],{Scaled[{0,0}],Scaled[{1,1}]}],BackgroundBlack]];AngleShrunkRange[ρ_]:=Module[{τ=Mod[ρ,2π]},If[τ>π,τ-2π,τ]];NormalVector2D[{x_,y_}]:={-y,x};TwoPointIntersection[{{x1_,y1_},{x2_,y2_}},{{x3_,y3_},{x4_,y4_}}]:=Module[{x21d=x2-x1,x43d=x4-x3,y21d=y2-y1,y43d=y4-y3,d,xnf1,xnf2,ynf1,ynf2,xn,yn,cf1,cf2,x,y},d=(x21d*y43d)-(x43d*y21d);cf1=(x2*y1-x1*y2);cf2=(x4*y3-x3*y4);xnf1=cf1*x43d;xnf2=cf2*x21d;ynf1=cf1*y43d;ynf2=cf2*y21d;x=(xnf1-xnf2)/d;y=(ynf1-ynf2)/d;{x,y}];TwoPoint2SlopeIntercept[{x1_,y1_},{x2_,y2_}]:=Module[{xd,yd},xd=If[x1==x2,.0001,x2-x1];yd=If[y2==y1,.0001,y2-y1];{yd/xd,-((x1*yd)/xd)+y1}];

