Function that plots and calculates intersection of lines

6 views (last 30 days)
I have to create a function that gets a matrix as an input that represent lines and each row contains 4 numbers (x1 y1 x2 y2).
The function has to plot the lines, calculate and mark the intersection point of the lines.
The function starts like this:
function [LL] = intersects(lines)
%plot and calculate lines and intesection
LL = [ ]; %Contains the intersection point
  2 Comments
SOFOKLIS SOFOKLEOUS
SOFOKLIS SOFOKLEOUS on 29 Nov 2019
Edited: SOFOKLIS SOFOKLEOUS on 29 Nov 2019
I can plot and find the intersection points of lines out of a function. However this exercise requires that the input is in the form of a matrix. Normally I can manipulate the values by assigning them as x1 y1 x2 y2 but in the above function the matrix is enteres as 'lines' so I can no longer use each value separately.

Sign in to comment.

Answers (1)

Dhananjay Kumar
Dhananjay Kumar on 3 Dec 2019
Edited: Dhananjay Kumar on 3 Dec 2019
You can do it manually through basic mathematical principles.
y-y1 = m(x-x1) => mx-y = mx1-y1 . Now this is in the form of ax+by = c.
(Here m = (y2-y1)/(x2-x1) )
Make another matrix A and a column vector b from the given input matrix.
Each row of A is [m ,-1] and corresponding element in b would be mx1-y1.
Now loop through each row and find the intersection points with all the other rows(which is not current row) inside another loop. (To solve for a pair of rows make 2x2 matrix A_temp and a 2x1 b_temp matrix and use mldivide ) Keep putting those intersection points in a matrix. Return the matrix

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by