f[]:=Rasterize@Column[{
color=RandomChoice[{Pink, LightGreen,LightBlue,LightGray, Yellow,LightBrown, LightMagenta,LightPurple,LightYellow}];,
"MATH&141  Precalculus 1, Algebra",
"Prof. Kelso",
" ",
Style["Midpoint Formula",Bold, Orange,20],
" ",
"We are looking for the midpoint between to arbitray points",
"in the plane:(Subscript[P, 1])= ((Subscript[x, 1]),(Subscript[y, 1])),(Subscript[P, 2])= ((Subscript[x, 2]),(Subscript[y, 2]))",
"The x-coordinate of the midoint is the average of the two",
"x-values and the y-coorindate of the midpoint is the average",
"of the two y-values:",
"((Subscript[x, 1]),(Subscript[y, 1]))="<>"((((Subscript[x, 1]) + (Subscript[x, 2]))/2), "<>"(((Subscript[y, 1]) + (Subscript[y, 2]))/2))",
" ",
(Subscript[x, 1])=RandomInteger[{0,2}]*2;(Subscript[x, 2])=(Subscript[x, 1])+((-1)^RandomInteger[] )*RandomInteger[{1,2}]*2;(Subscript[y, 1])=RandomInteger[{0,2}]*2;(Subscript[y, 2])=(Subscript[x, 1])+((-1)^RandomInteger[] )*RandomInteger[{1,2}]*2;
ℛ=Line[{{(Subscript[x, 1]),(Subscript[y, 1])},{(Subscript[x, 2]),(Subscript[y, 2])}}];
midpoint=(({(Subscript[x, 1]),(Subscript[y, 1])}+{(Subscript[x, 2]),(Subscript[y, 2])})/2);
" ",
Style["Example 1",Bold],
" ",
Graphics[{ℛ,Pink,PointSize[Large],Point[midpoint],Black,Text["("<>ToString[midpoint[[1]]]<>","<>ToString[midpoint[[2]]]<>")",midpoint+{If[(Subscript[x, 1])≠(Subscript[x, 2])&&(Subscript[y, 1])!=(Subscript[y, 2]),0.3,0.07],If[(Subscript[x, 1])≠(Subscript[x, 2])&&(Subscript[y, 1])!=(Subscript[y, 2]),0.3,0.07]}],

Text["("<>ToString[(Subscript[x, 1])]<>","<>ToString[(Subscript[y, 1])]<>")",{(Subscript[x, 1]),(Subscript[y, 1])}+{If[(Subscript[x, 1])≠(Subscript[x, 2])&&(Subscript[y, 1])!=(Subscript[y, 2]),0.3,0.07],If[(Subscript[x, 1])≠(Subscript[x, 2])&&(Subscript[y, 1])!=(Subscript[y, 2]),0.3,0.07]}],

Text["("<>ToString[(Subscript[x, 2])]<>","<>ToString[(Subscript[y, 2])]<>")",{(Subscript[x, 2]),(Subscript[y, 2])}+{If[(Subscript[x, 1])≠(Subscript[x, 2])&&(Subscript[y, 1])!=(Subscript[y, 2]),0.3,0.07],If[(Subscript[x, 1])≠(Subscript[x, 2])&&(Subscript[y, 1])!=(Subscript[y, 2]),0.3,0.07]}],

Green,Point[{(Subscript[x, 1]),(Subscript[y, 1])}], Point[{(Subscript[x, 2]),(Subscript[y, 2])}], White, PointSize[Tiny],Point[{1.2343423,1.23423432}]},(*white point added to avoid tiny scane aspect ration scaling*)


AxesOrigin->{0,0},Axes->True,AxesLabel->{X,Y},AspectRatio->1],
" ",
(Subscript[x, 1])=RandomInteger[{0,2}]*2;(Subscript[x, 2])=(Subscript[x, 1])+((-1)^RandomInteger[] )*RandomInteger[{1,2}]*2;(Subscript[y, 1])=RandomInteger[{0,2}]*2;(Subscript[y, 2])=(Subscript[x, 1])+((-1)^RandomInteger[] )*RandomInteger[{1,2}]*2;
ℛ=Line[{{(Subscript[x, 1]),(Subscript[y, 1])},{(Subscript[x, 2]),(Subscript[y, 2])}}];
midpoint=(({(Subscript[x, 1]),(Subscript[y, 1])}+{(Subscript[x, 2]),(Subscript[y, 2])})/2);
Graphics[{ℛ,Pink,PointSize[Large],Point[midpoint],Black,Text["("<>ToString[midpoint[[1]]]<>","<>ToString[midpoint[[2]]]<>")",midpoint+{If[(Subscript[x, 1])≠(Subscript[x, 2])&&(Subscript[y, 1])!=(Subscript[y, 2]),0.3,0.07],If[(Subscript[x, 1])≠(Subscript[x, 2])&&(Subscript[y, 1])!=(Subscript[y, 2]),0.3,0.07]}],

Text["("<>ToString[(Subscript[x, 1])]<>","<>ToString[(Subscript[y, 1])]<>")",{(Subscript[x, 1]),(Subscript[y, 1])}+{If[(Subscript[x, 1])≠(Subscript[x, 2])&&(Subscript[y, 1])!=(Subscript[y, 2]),0.3,0.07],If[(Subscript[x, 1])≠(Subscript[x, 2])&&(Subscript[y, 1])!=(Subscript[y, 2]),0.3,0.07]}],

Text["("<>ToString[(Subscript[x, 2])]<>","<>ToString[(Subscript[y, 2])]<>")",{(Subscript[x, 2]),(Subscript[y, 2])}+{If[(Subscript[x, 1])≠(Subscript[x, 2])&&(Subscript[y, 1])!=(Subscript[y, 2]),0.3,0.07],If[(Subscript[x, 1])≠(Subscript[x, 2])&&(Subscript[y, 1])!=(Subscript[y, 2]),0.3,0.07]}],

Green,Point[{(Subscript[x, 1]),(Subscript[y, 1])}], Point[{(Subscript[x, 2]),(Subscript[y, 2])}], White, PointSize[Tiny],Point[{1.2343423,1.23423432}]},(*white point added to avoid tiny scane aspect ration scaling*)


AxesOrigin->{0,0},Axes->True,AxesLabel->{X,Y},AspectRatio->1],
" ",
Style["Experiment 1",Bold],
" ",
"Measure the distance between the midpoint and two original",
"end points.",
,
" ",
Row[{"d(("<>ToString[midpoint[[1]]]<>", "<>ToString[midpoint[[2]]]<>"), ("<>ToString[(Subscript[x, 1])]<>", "<>ToString[(Subscript[y, 1])]<>"))=",TraditionalForm[Norm[midpoint- {(Subscript[x, 1]),(Subscript[y, 1])}]]}],
Row[{"d(("<>ToString[midpoint[[1]]]<>", "<>ToString[midpoint[[2]]]<>"), ("<>ToString[(Subscript[x, 2])]<>", "<>ToString[(Subscript[y, 2])]<>"))=",TraditionalForm[Norm[midpoint- {(Subscript[x, 2]),(Subscript[y, 2])}]]}]
,
"Repeat the experiment many times.",
"It seems the distance between the midpoint and endpoints is same!",
" ",
" ",




}]

f[]