# [R] x, y for point of intersection

(Ted Harding) ted.harding at wlandres.net
Tue Nov 22 23:49:58 CET 2011

```On 22-Nov-11 21:25:56, Monica Pisica wrote:
> Hi everyone,
>
> I am trying to get a point of intersection between a
> polyline and a straight line
.. and get the x and y
> coordinates of this point.
> For exemplification consider this:
>
> set.seed(123)
> k1 <-rnorm(100, mean=1.77, sd=3.33)
> k1 <- sort(k1)
> q1 <- rnorm(100, mean=2.37, sd=0.74)
> q1 <- sort(q1, decreasing = TRUE)
> plot(k1, q1, xlim <- c((min(k1)-5), (max(k1)+5)), type="l")
>
> ya <- 2
> xa = -5
> yb=4
> xb=12
> lines(c(xa, xb), c(ya, yb), col = 2)
>
># I want to get the x and y coordinates of the
># intersection of the 2 lines.
>
> m <- (ya-yb)/(xa-xb)
> b <- ya-m*xa
> ln <- loess(q1~k1)
> lines(ln)
>
> It is clear that the x, y will satisfy both linear equations,
> y = m*x + b and the ln polyline - .. but while I can visualize
> the equation of the straight line  - I have problems with the
> polyline. I will appreciate any ideas to solve this problem.
> I thought it a trivial solution but it seems I cannot see it.
> Thanks,
> Monica

ya <- 2
xa = -5
yb =  4
xb = 12

These define a line

y = ya + (x - xa)*(yb - ya)/(xb - xa)

so write this as

y = A + B*x

Then points above the line satisfy

y > A + B*X

and points below the line satisfy

Y < A + B*X

A <- ya - xa*(yb - ya)/(xb - xa)
B <- (yb - ya)/(xb - xa)

So now extract the points (x,y) fron the loess fit:

x.ln <- ln\$x
y.ln <- ln\$y

and now find the points on 'ln' which are above, and
the points on ln which are below, which will locate the
segment which crosses the (X,Y) line:

ix.upper <- which(y.ln >  A + B*ln\$y)
ix.lower <- which(y.ln <=3D A + B*ln\$y)

ix.upper
# 1  2  3  4  5  6  7  8  9 10 11 12 13 14 15=20

So now you have the line segment from

(x.ln,y.ln)
to
(x.ln,y.ln)

and now all you need to do is to find the intersection
of the line from (ln.x,ln.y) to (ln.x,ln.y)
with the line from (xa,ya) to (xb,yb).

(There could be complications if the y-values of ln do not
continually decrease in value; but happily they do decrease

Hoping this helps!
Ted.

--------------------------------------------------------------------
E-Mail: (Ted Harding) <ted.harding at wlandres.net>
Fax-to-email: +44 (0)870 094 0861
Date: 22-Nov-11                                       Time: 22:49:54
------------------------------ XFMail ------------------------------

```