I'm trying to plot the intersection of a Sum function with a horizontal line and automatically highlight the intersection points. The code below shows my knowledge of Mathematica and for different values of "d" I am calculating with Solve the intersection points (ex p1,p2 and p3) and manually typing the value in the Epilog option. I tried Point[{p1,1}] but it doesn't work. I also tried it with MeshFunctions -> {g[#] - f[#] &}, Mesh -> {{0}}, MeshStyle -> PointSize[Large] but I get an error "functions must be pure functions". I would also like to be able to define the ranges of "d" and "pc" as {d, {min,max,incr}} instead of a list. Thanks in advance.
np = 2
f[pc_] := 1
q[d_, pc_] := (pc/(100*0.48)) *
Sum[((Pi/4)*(d - (2*n*0.48))^2), {n, 1, np}]
p[d_] := Sum[Pi*(d - (2*n - 1)*0.48), {n, 1, np}]
p1 = Solve[q[20, pc]/p[20] == f[pc], pc]
p2 = Solve[q[10, pc]/p[10] == f[pc], pc]
p3 = Solve[q[8, pc]/p[8] == f[pc], pc]
g[d_, pc_] := q[d, pc]/p[d]
Plot[{Evaluate[Table[g[d, pc], {d, {8, 10, 20}}]], f[pc]}, {pc, 0,
50}, PlotRange -> All, AxesLabel -> {"%", "li/lp"},
FrameLabel -> {Style["pc", 12, Bold], Style["li/lp", 12, Bold]},
PlotLabels -> {"d=8", "d=10", "d=20"}, PlotTheme -> "Scientific",
GridLines -> Automatic, PlotLabel -> "Razão comprimentos",
Epilog -> {PointSize[0.02], Point[{10.6053, 1}], Point[{23.6134, 1}],
Point[{31.2426, 1}]}]