Let's plot this wall (using the 30 degree launch angle)
First, let's parameterize the wall using the angle of elevation above the x-axis. The outfield wall is a straight line from the first base line until the point (425, 150). At that point, the angle is
Input :=
a1=ArcTan[150/425]//N
Output =
0.339293
The other point where the function will need to be `broken' is (250, 325), and at that point our angle is
Input :=
a2=ArcTan[325/250]//N
Output =
0.915101
So let's define the right field wall
Input :=
x[angle_] := 425 /; angle>=0 && angle<a1
y[angle_] := 425 Tan[angle] /; angle>=0 && angle<a1
The center field wall is harder. First, we need a function that maps the interval between a1 and a2 onto the interval [0, Pi/2].
Input :=
map[angle_] = Pi/(2(a2-a1))(angle-a1);
We can parameterize a quarter circle of radius 175 and translate it
Input :=
x[angle_]:=175 Cos[map[angle]]+250 /;
angle>=a1 && angle <a2
y[angle_]:=175 Sin[map[angle]]+150 /;
angle>=a1 && angle <a2
Now the left field wall
Input :=
x[angle_]:=250(Pi/2-angle)/(Pi/2 - a2) /;
angle>=a2 && angle<N[Pi/2]
y[angle_]:=325 /;
angle>=a2 && angle<N[Pi/2]
Input :=
ParametricPlot[{x[angle], y[angle]},
{angle,0,Pi/2-.0001}];
Now let's get the height of the wall.
Input :=
distance[angle_] = Sqrt[x[angle]^2 + y[angle]^2];
Input :=
z[angle_] :=
vert[Solve[horiz[t]==distance[angle],t][[1,1,2]]]
Input :=
ParametricPlot3D[{x[angle], y[angle], z[angle]},
{angle,0,Pi/2-.0001}];
Or, from behind the plate
Input :=
ParametricPlot3D[{x[angle],y[angle],z[angle]},
{angle, 0, Pi/2-.0001},
ViewPoint -> {-10, -10, 0}];