Function that plots and calculates intersection of lines

2 次查看(过去 30 天)
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 个评论
Geoff Hayes
Geoff Hayes 2019-11-29
This seems like homework so please show what you have tried so far. You will (probably) need to determine the equation for each line and then solve for the intersection for each pair of lines.
SOFOKLIS SOFOKLEOUS
SOFOKLIS SOFOKLEOUS 2019-11-29
编辑:SOFOKLIS SOFOKLEOUS 2019-11-29
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.

请先登录,再进行评论。

回答(1 个)

Dhananjay Kumar
Dhananjay Kumar 2019-12-3
编辑:Dhananjay Kumar 2019-12-3
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

类别

Help CenterFile Exchange 中查找有关 Loops and Conditional Statements 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by