# 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.♦
Apr 11 ’13 at 0:27

@J.M. Thanks for clearing this up!
– geordie
Apr 11 ’13 at 1:58

=================

1

=================

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+1y=x+1y=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