ResultPlot := proc(P1x, P1y, P2x, P2y, Xborder, Yborder, Perturb, Start, End, Zerosvec, Nzeros, Xrange, Yrange) local i, n, Trajectories, AimPointX, AimPointY, PlotTraject, PlotPoints, PlotBorder, PlotPert; for i from 1 by 1 to Nzeros do AimPointX[i] := evalf(subs(t = Zerosvec[i], Xborder)); AimPointY[i] := evalf(subs(t = Zerosvec[i], Yborder)); Trajectories[i] := [[P1x, P1y], [AimPointX[i], AimPointY[i]], [P2x, P2y]]; od; PlotTraject := plot({seq(Trajectories[i], i = 1..Nzeros)}, style = LINE, thickness=1): PlotPoints := plot({[P1x, P1y], [P2x, P2y], seq([AimPointX[i], AimPointY[i]], i = 1..Nzeros)}, style=POINT): PlotBorder := plot([Xborder, Yborder, t = Start..End], thickness=2): PlotPert := plot([Xborder*(1 + Perturb), Yborder*(1 + Perturb), t = Start..End], linestyle=3): display({PlotTraject, PlotPoints, PlotBorder, PlotPert}, scaling=constrained, view=[Xrange, Yrange]); end;