# Constrain plot points to below a certain line

I have a set of curves that take on large values when approaching 1. I'm trying to create a straight line with certain slope and then truncate the plot for any curve that goes above that line for any value of x. This is my current code:

lm := Sqrt[M^2 - 1]
C1 := 2/lm
C2 := ((1.4 + 1)*M^4 - 4 M^2 + 4)/(2*lm^4)

pr1[o_, M_] := (C1*(o*Pi/180) + C2*(o*Pi/180)^2)*1.4*M^2/2 + 1;

Plot[Table[pr1[o, M], {o, {2, 4, 6, 8, 10, 12, 14, 16, 18, 20}}] // Release, {M, 1, 3},
AxesOrigin -> {1, 0}] • Your code doesn't produce any points (i.e. produces an empty graph) in MMA v8.0.4. Should there be a semi-colon before C1 and C2? If so, then a series of lines (not points) are produced. Also, there is nothing in the document center about Release?? (although I can see what it is doing here). How did you find out about it? Does anyone know if it is superseded? – geordie Apr 10 '13 at 23:09
• @geordie, Release[] is a very, very old function. Nowadays, in this context, one would use Evaluate[], which has the same purpose. – J. M.'s technical difficulties Apr 11 '13 at 0:27
• @J.M. Thanks for clearing this up! – geordie Apr 11 '13 at 1:58

Try this:

 With[{a = 1, b = 1},
Plot[
Join[Table[pr1[o, M], {o, {2, 4, 6, 8, 10, 12, 14, 16, 18, 20}}],
{a M + b}] // Evaluate,
{M, 1, 3},
AxesOrigin -> {1, 0},
RegionFunction -> Function[{x, y}, (y - b)/a >= x]]]


The option RegionFunction will exclude the region below the line $y=x+1$, for instance. The command Release is obsolete; use Evaluate instead.

• It seems to me that this answer constrains the curves in the wrong way. I believe the question asks for the parts of curves which are under the line. – m_goldberg Apr 11 '13 at 4:04
• This is just an example to get the feel of it if he wants below the curve he just reverses the $\ge$ to $\le$. – Spawn1701D Apr 11 '13 at 4:45